Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc) » [teneo] Exception when using Enums
|
Re: [teneo] Exception when using Enums [message #58830 is a reply to message #58730] |
Tue, 24 October 2006 05:48 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Hans,
I have a testcase which tests this and it works. This exception can occur when you try to save an
object in two different sessions. This occurs for example if you have references between objects in
different resources. If you save one resource then the refered object in the other resource is also
saved, when you then save the second resource this error occurs. Also the name of your testcase
seems to refer to this.
If this is the case then you can use a SessionController (url probably truncated by line break):
http://www.elver.org/hibernate/hibernateresources.html#Shari ng+one+Session+between+Resources%2C+One+transaction+when+sav ing+multiple+resources
to share a session between resources.
gr. Martin
Hans Mueller-Dieckert wrote:
> Hi Martin and everybody else reading this !
>
> I have an enum MyEnum in my model and a class which has an attribute
> with the type MyEnum. When I have a single object, set the attribute and
> save everything in a HibernateResource, everything works fine.
>
> But having two objects, where the attribute for both objects is set to
> the same enmu-literal, I get an Exception.
>
> This is the code which does not work:
>
> Resource dbResource = domain.getResourceSet().getResource(uri, true);
>
>
> TestClass element1 = TestmodelFactory.eINSTANCE.createTestClass();
> element1.setEnumProperty(TestEnum.ITEM1_LITERAL);
> dbResource.getContents().add(element1);
>
> TestClass element2 = TestmodelFactory.eINSTANCE.createTestClass();
> element2.setEnumProperty(TestEnum.ITEM1_LITERAL);
> dbResource.getContents().add(element2);
>
> dbResource.save(null);
>
>
> I'll also attach a little screenshot describing the model and the
> exception stack trace.
>
> greetings,
> Hans
>
>
> ------------------------------------------------------------ ------------
>
> org.eclipse.emf.teneo.hibernate.HbStoreException: Exception when saving resource test
> at org.eclipse.emf.teneo.hibernate.resource.HibernateResource.s aveResource(HibernateResource.java:214)
> at org.eclipse.emf.teneo.resource.StoreResource.save(StoreResou rce.java:271)
> at de.arcsolutions.remarc.platform.emftest.TwoResourcesLinkTest Case.testTwoResources(TwoResourcesLinkTestCase.java:77)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at junit.framework.TestCase.runTest(TestCase.java:154)
> at junit.framework.TestCase.runBare(TestCase.java:127)
> at junit.framework.TestResult$1.protect(TestResult.java:106)
> at junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:118)
> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> at junit.framework.TestSuite.run(TestSuite.java:203)
> at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestRefer ence.run(JUnit3TestReference.java:128)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(Test Execution.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:460)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:673)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(R emoteTestRunner.java:386)
> at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunne r.main(RemotePluginTestRunner.java:58)
> at org.eclipse.pde.internal.junit.runtime.CoreTestApplication.r un(CoreTestApplication.java:24)
> at org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
> at org.eclipse.core.launcher.Main.run(Main.java:977)
> at org.eclipse.core.launcher.Main.main(Main.java:952)
> Caused by: org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions
> at org.hibernate.collection.AbstractPersistentCollection.setCur rentSession(AbstractPersistentCollection.java:410)
> at org.hibernate.event.def.OnUpdateVisitor.processCollection(On UpdateVisitor.java:40)
> at org.hibernate.event.def.AbstractVisitor.processValue(Abstrac tVisitor.java:101)
> at org.hibernate.event.def.AbstractVisitor.processValue(Abstrac tVisitor.java:61)
> at org.hibernate.event.def.AbstractVisitor.processEntityPropert yValues(AbstractVisitor.java:55)
> at org.hibernate.event.def.AbstractVisitor.process(AbstractVisi tor.java:123)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.per formUpdate(DefaultSaveOrUpdateEventListener.java:267)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.ent ityIsDetached(DefaultSaveOrUpdateEventListener.java:216)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.per formSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onS aveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
> at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl. java:502)
> at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java :494)
> at org.hibernate.engine.CascadingAction$1.cascade(CascadingActi on.java:134)
> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:213)
> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :157)
> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:10 8)
> at org.hibernate.engine.Cascade.cascade(Cascade.java:248)
> at org.hibernate.engine.Cascade.cascade(Cascade.java:223)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.cas cadeOnUpdate(DefaultSaveOrUpdateEventListener.java:331)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.per formUpdate(DefaultSaveOrUpdateEventListener.java:303)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.ent ityIsDetached(DefaultSaveOrUpdateEventListener.java:216)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.per formSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onS aveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
> at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl. java:502)
> at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java :494)
> at org.hibernate.engine.CascadingAction$1.cascade(CascadingActi on.java:134)
> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:213)
> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :157)
> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:10 8)
> at org.hibernate.engine.Cascade.cascade(Cascade.java:248)
> at org.hibernate.event.def.AbstractFlushingEventListener.cascad eOnFlush(AbstractFlushingEventListener.java:130)
> at org.hibernate.event.def.AbstractFlushingEventListener.prepar eEntityFlushes(AbstractFlushingEventListener.java:121)
> at org.hibernate.event.def.AbstractFlushingEventListener.flushE verythingToExecutions(AbstractFlushingEventListener.java:65)
> at org.hibernate.event.def.DefaultFlushEventListener.onFlush(De faultFlushEventListener.java:26)
> at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
> at org.eclipse.emf.teneo.hibernate.resource.HibernateResource.s aveResource(HibernateResource.java:210)
> ... 34 more
>
>
>
> ------------------------------------------------------------ ------------
>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [teneo] Exception when using Enums [message #58906 is a reply to message #58830] |
Tue, 24 October 2006 07:40 |
Hans Mueller-Dieckert Messages: 32 Registered: July 2009 |
Member |
|
|
Hi Martin,
I save everything in a single resource. The name of the test case is
just because I changed an old test case when trying to check out if I
can reproduce the Exception with a test case.
The funny thing is, that when I'm commenting out the marked lines down
below and run the test case twice, the second time it fails.
If you want to, I could provide you the project containing the testmodel
and the test case.
For now, here is my full testcode:
final String dataStoreName = "enumtest";
final HbDataStore dataStore =
HbHelper.INSTANCE.createRegisterDataStore(dataStoreName);
EPackage[] packages = new EPackage[] {TestmodelPackage.eINSTANCE};
dataStore.setEPackages(packages);
Properties properties = new Properties();
properties.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
properties.setProperty("hibernate.connection.url","jdbc:mysql://127.0.0.1:3306/enumtest");
properties.setProperty("hibernate.connection.username","root ");
properties.setProperty("hibernate.connection.password","system ");
properties.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLInnoDBDialect ");
dataStore.setHibernateProperties(properties);
dataStore.initialize();
EditingDomain domain = new AdapterFactoryEditingDomain(new
ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Reg istry.INSTANCE),new
BasicCommandStack());
String uriStr = "hibernate://?" + HibernateResource.DS_NAME_PARAM +
"=enumtest";
URI uri = URI.createURI(uriStr);
Resource dbResource = domain.getResourceSet().getResource(uri, true);
TestClass element1 = TestmodelFactory.eINSTANCE.createTestClass();
element1.setEnumProperty(TestEnum.ITEM1_LITERAL);
dbResource.getContents().add(element1);
// Commenting the following lines out brings up an Exception when
// running the test case twice
TestClass element2 = TestmodelFactory.eINSTANCE.createTestClass();
element2.setEnumProperty(TestEnum.ITEM1_LITERAL);
dbResource.getContents().add(element2);
dbResource.save(null);
reetings,
Hans
Martin Taal schrieb:
> Hi Hans,
> I have a testcase which tests this and it works. This exception can
> occur when you try to save an object in two different sessions. This
> occurs for example if you have references between objects in different
> resources. If you save one resource then the refered object in the other
> resource is also saved, when you then save the second resource this
> error occurs. Also the name of your testcase seems to refer to this.
> If this is the case then you can use a SessionController (url probably
> truncated by line break):
> http://www.elver.org/hibernate/hibernateresources.html#Shari ng+one+Session+between+Resources%2C+One+transaction+when+sav ing+multiple+resources
>
>
> to share a session between resources.
>
> gr. Martin
>
|
|
|
Re: [teneo] Exception when using Enums [message #58957 is a reply to message #58906] |
Tue, 24 October 2006 09:41 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Hans,
Can you send me the test project and test case?
So if you don't comment out the lines then running twice does not result in an error?
gr. Martin
Hans Mueller-Dieckert wrote:
> Hi Martin,
>
> I save everything in a single resource. The name of the test case is
> just because I changed an old test case when trying to check out if I
> can reproduce the Exception with a test case.
> The funny thing is, that when I'm commenting out the marked lines down
> below and run the test case twice, the second time it fails.
>
> If you want to, I could provide you the project containing the testmodel
> and the test case.
>
> For now, here is my full testcode:
>
>
> final String dataStoreName = "enumtest";
>
> final HbDataStore dataStore =
> HbHelper.INSTANCE.createRegisterDataStore(dataStoreName);
>
> EPackage[] packages = new EPackage[] {TestmodelPackage.eINSTANCE};
>
> dataStore.setEPackages(packages);
>
> Properties properties = new Properties();
>
> properties.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
>
> properties.setProperty("hibernate.connection.url","jdbc:mysql://127.0.0.1:3306/enumtest");
>
> properties.setProperty("hibernate.connection.username","root ");
> properties.setProperty("hibernate.connection.password","system ");
> properties.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLInnoDBDialect ");
>
>
> dataStore.setHibernateProperties(properties);
>
> dataStore.initialize();
>
> EditingDomain domain = new AdapterFactoryEditingDomain(new
> ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Reg istry.INSTANCE),new
> BasicCommandStack());
>
> String uriStr = "hibernate://?" + HibernateResource.DS_NAME_PARAM +
> "=enumtest";
> URI uri = URI.createURI(uriStr);
> Resource dbResource = domain.getResourceSet().getResource(uri, true);
>
> TestClass element1 = TestmodelFactory.eINSTANCE.createTestClass();
> element1.setEnumProperty(TestEnum.ITEM1_LITERAL);
> dbResource.getContents().add(element1);
>
> // Commenting the following lines out brings up an Exception when
> // running the test case twice
> TestClass element2 = TestmodelFactory.eINSTANCE.createTestClass();
> element2.setEnumProperty(TestEnum.ITEM1_LITERAL);
> dbResource.getContents().add(element2);
>
> dbResource.save(null);
>
> reetings,
> Hans
>
> Martin Taal schrieb:
>> Hi Hans,
>> I have a testcase which tests this and it works. This exception can
>> occur when you try to save an object in two different sessions. This
>> occurs for example if you have references between objects in different
>> resources. If you save one resource then the refered object in the
>> other resource is also saved, when you then save the second resource
>> this error occurs. Also the name of your testcase seems to refer to this.
>> If this is the case then you can use a SessionController (url probably
>> truncated by line break):
>> http://www.elver.org/hibernate/hibernateresources.html#Shari ng+one+Session+between+Resources%2C+One+transaction+when+sav ing+multiple+resources
>>
>>
>> to share a session between resources.
>>
>> gr. Martin
>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [teneo] Exception when using Enums [message #59009 is a reply to message #58957] |
Tue, 24 October 2006 10:27 |
Hans Mueller-Dieckert Messages: 32 Registered: July 2009 |
Member |
|
|
Hi Martin,
I'll send you the Project soon via mail. When not commenting out these
lines I can't even run the test case once without an exception.
greeting,
Hans
Martin Taal schrieb:
> Hi Hans,
> Can you send me the test project and test case?
> So if you don't comment out the lines then running twice does not result
> in an error?
>
> gr. Martin
>
> Hans Mueller-Dieckert wrote:
>> Hi Martin,
>>
>> I save everything in a single resource. The name of the test case is
>> just because I changed an old test case when trying to check out if I
>> can reproduce the Exception with a test case.
>> The funny thing is, that when I'm commenting out the marked lines down
>> below and run the test case twice, the second time it fails.
>>
>> If you want to, I could provide you the project containing the
>> testmodel and the test case.
>>
>> For now, here is my full testcode:
>>
>>
>> final String dataStoreName = "enumtest";
>> final HbDataStore dataStore =
>> HbHelper.INSTANCE.createRegisterDataStore(dataStoreName);
>>
>> EPackage[] packages = new EPackage[] {TestmodelPackage.eINSTANCE};
>> dataStore.setEPackages(packages);
>> Properties properties = new Properties();
>>
>> properties.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
>>
>> properties.setProperty("hibernate.connection.url","jdbc:mysql://127.0.0.1:3306/enumtest");
>>
>> properties.setProperty("hibernate.connection.username","root ");
>> properties.setProperty("hibernate.connection.password","system ");
>> properties.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLInnoDBDialect ");
>>
>>
>> dataStore.setHibernateProperties(properties);
>>
>> dataStore.initialize();
>> EditingDomain domain = new AdapterFactoryEditingDomain(new
>> ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Reg istry.INSTANCE),new
>> BasicCommandStack());
>>
>> String uriStr = "hibernate://?" + HibernateResource.DS_NAME_PARAM +
>> "=enumtest";
>> URI uri = URI.createURI(uriStr);
>> Resource dbResource = domain.getResourceSet().getResource(uri, true);
>> TestClass element1 = TestmodelFactory.eINSTANCE.createTestClass();
>> element1.setEnumProperty(TestEnum.ITEM1_LITERAL);
>> dbResource.getContents().add(element1);
>> // Commenting the following lines out brings up an Exception when
>> // running the test case twice
>> TestClass element2 = TestmodelFactory.eINSTANCE.createTestClass();
>> element2.setEnumProperty(TestEnum.ITEM1_LITERAL);
>> dbResource.getContents().add(element2);
>> dbResource.save(null);
>>
>> reetings,
>> Hans
>>
>> Martin Taal schrieb:
>>> Hi Hans,
>>> I have a testcase which tests this and it works. This exception can
>>> occur when you try to save an object in two different sessions. This
>>> occurs for example if you have references between objects in
>>> different resources. If you save one resource then the refered object
>>> in the other resource is also saved, when you then save the second
>>> resource this error occurs. Also the name of your testcase seems to
>>> refer to this.
>>> If this is the case then you can use a SessionController (url
>>> probably truncated by line break):
>>> http://www.elver.org/hibernate/hibernateresources.html#Shari ng+one+Session+between+Resources%2C+One+transaction+when+sav ing+multiple+resources
>>>
>>>
>>> to share a session between resources.
>>>
>>> gr. Martin
>>>
>
>
|
|
|
Re: [teneo] Exception when using Enums [message #59309 is a reply to message #59009] |
Wed, 25 October 2006 18:55 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Hans,
I tested this and with me the error was that the enum property was set to unique, so I got a unique
constraint violation.
This was caused by a bug that the unique property of an EAttribute was still being used for enum and
lob. I have entered a bugzilla for this:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=162256
I have committed a fix, this will be in the next build (probably friday).
Can you check if setting the unique property of the EnumProperty to false helps? You need to
regenerate the sources for Teneo to see the new unique value as it reads the runtime model.
gr. Martin
Hans Mueller-Dieckert wrote:
> Hi Martin,
>
> I'll send you the Project soon via mail. When not commenting out these
> lines I can't even run the test case once without an exception.
>
> greeting,
> Hans
>
>
> Martin Taal schrieb:
>> Hi Hans,
>> Can you send me the test project and test case?
>> So if you don't comment out the lines then running twice does not
>> result in an error?
>>
>> gr. Martin
>>
>> Hans Mueller-Dieckert wrote:
>>> Hi Martin,
>>>
>>> I save everything in a single resource. The name of the test case is
>>> just because I changed an old test case when trying to check out if I
>>> can reproduce the Exception with a test case.
>>> The funny thing is, that when I'm commenting out the marked lines
>>> down below and run the test case twice, the second time it fails.
>>>
>>> If you want to, I could provide you the project containing the
>>> testmodel and the test case.
>>>
>>> For now, here is my full testcode:
>>>
>>>
>>> final String dataStoreName = "enumtest";
>>> final HbDataStore dataStore =
>>> HbHelper.INSTANCE.createRegisterDataStore(dataStoreName);
>>>
>>> EPackage[] packages = new EPackage[] {TestmodelPackage.eINSTANCE};
>>> dataStore.setEPackages(packages);
>>> Properties properties = new Properties();
>>>
>>> properties.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
>>>
>>> properties.setProperty("hibernate.connection.url","jdbc:mysql://127.0.0.1:3306/enumtest");
>>>
>>> properties.setProperty("hibernate.connection.username","root ");
>>> properties.setProperty("hibernate.connection.password","system ");
>>> properties.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLInnoDBDialect ");
>>>
>>>
>>> dataStore.setHibernateProperties(properties);
>>>
>>> dataStore.initialize();
>>> EditingDomain domain = new AdapterFactoryEditingDomain(new
>>> ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Reg istry.INSTANCE),new
>>> BasicCommandStack());
>>>
>>> String uriStr = "hibernate://?" + HibernateResource.DS_NAME_PARAM +
>>> "=enumtest";
>>> URI uri = URI.createURI(uriStr);
>>> Resource dbResource = domain.getResourceSet().getResource(uri, true);
>>> TestClass element1 = TestmodelFactory.eINSTANCE.createTestClass();
>>> element1.setEnumProperty(TestEnum.ITEM1_LITERAL);
>>> dbResource.getContents().add(element1);
>>> // Commenting the following lines out brings up an Exception when
>>> // running the test case twice
>>> TestClass element2 = TestmodelFactory.eINSTANCE.createTestClass();
>>> element2.setEnumProperty(TestEnum.ITEM1_LITERAL);
>>> dbResource.getContents().add(element2);
>>> dbResource.save(null);
>>>
>>> reetings,
>>> Hans
>>>
>>> Martin Taal schrieb:
>>>> Hi Hans,
>>>> I have a testcase which tests this and it works. This exception can
>>>> occur when you try to save an object in two different sessions. This
>>>> occurs for example if you have references between objects in
>>>> different resources. If you save one resource then the refered
>>>> object in the other resource is also saved, when you then save the
>>>> second resource this error occurs. Also the name of your testcase
>>>> seems to refer to this.
>>>> If this is the case then you can use a SessionController (url
>>>> probably truncated by line break):
>>>> http://www.elver.org/hibernate/hibernateresources.html#Shari ng+one+Session+between+Resources%2C+One+transaction+when+sav ing+multiple+resources
>>>>
>>>>
>>>> to share a session between resources.
>>>>
>>>> gr. Martin
>>>>
>>
>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [teneo] Exception when using Enums [message #594654 is a reply to message #58730] |
Tue, 24 October 2006 05:48 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Hans,
I have a testcase which tests this and it works. This exception can occur when you try to save an
object in two different sessions. This occurs for example if you have references between objects in
different resources. If you save one resource then the refered object in the other resource is also
saved, when you then save the second resource this error occurs. Also the name of your testcase
seems to refer to this.
If this is the case then you can use a SessionController (url probably truncated by line break):
http://www.elver.org/hibernate/hibernateresources.html#Shari ng+one+Session+between+Resources%2C+One+transaction+when+sav ing+multiple+resources
to share a session between resources.
gr. Martin
Hans Mueller-Dieckert wrote:
> Hi Martin and everybody else reading this !
>
> I have an enum MyEnum in my model and a class which has an attribute
> with the type MyEnum. When I have a single object, set the attribute and
> save everything in a HibernateResource, everything works fine.
>
> But having two objects, where the attribute for both objects is set to
> the same enmu-literal, I get an Exception.
>
> This is the code which does not work:
>
> Resource dbResource = domain.getResourceSet().getResource(uri, true);
>
>
> TestClass element1 = TestmodelFactory.eINSTANCE.createTestClass();
> element1.setEnumProperty(TestEnum.ITEM1_LITERAL);
> dbResource.getContents().add(element1);
>
> TestClass element2 = TestmodelFactory.eINSTANCE.createTestClass();
> element2.setEnumProperty(TestEnum.ITEM1_LITERAL);
> dbResource.getContents().add(element2);
>
> dbResource.save(null);
>
>
> I'll also attach a little screenshot describing the model and the
> exception stack trace.
>
> greetings,
> Hans
>
>
> ------------------------------------------------------------ ------------
>
> org.eclipse.emf.teneo.hibernate.HbStoreException: Exception when saving resource test
> at org.eclipse.emf.teneo.hibernate.resource.HibernateResource.s aveResource(HibernateResource.java:214)
> at org.eclipse.emf.teneo.resource.StoreResource.save(StoreResou rce.java:271)
> at de.arcsolutions.remarc.platform.emftest.TwoResourcesLinkTest Case.testTwoResources(TwoResourcesLinkTestCase.java:77)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at junit.framework.TestCase.runTest(TestCase.java:154)
> at junit.framework.TestCase.runBare(TestCase.java:127)
> at junit.framework.TestResult$1.protect(TestResult.java:106)
> at junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:118)
> at junit.framework.TestSuite.runTest(TestSuite.java:208)
> at junit.framework.TestSuite.run(TestSuite.java:203)
> at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestRefer ence.run(JUnit3TestReference.java:128)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(Test Execution.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:460)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe sts(RemoteTestRunner.java:673)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(R emoteTestRunner.java:386)
> at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunne r.main(RemotePluginTestRunner.java:58)
> at org.eclipse.pde.internal.junit.runtime.CoreTestApplication.r un(CoreTestApplication.java:24)
> at org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:78)
> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:92)
> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:68)
> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:400)
> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:177)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336 )
> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
> at org.eclipse.core.launcher.Main.run(Main.java:977)
> at org.eclipse.core.launcher.Main.main(Main.java:952)
> Caused by: org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions
> at org.hibernate.collection.AbstractPersistentCollection.setCur rentSession(AbstractPersistentCollection.java:410)
> at org.hibernate.event.def.OnUpdateVisitor.processCollection(On UpdateVisitor.java:40)
> at org.hibernate.event.def.AbstractVisitor.processValue(Abstrac tVisitor.java:101)
> at org.hibernate.event.def.AbstractVisitor.processValue(Abstrac tVisitor.java:61)
> at org.hibernate.event.def.AbstractVisitor.processEntityPropert yValues(AbstractVisitor.java:55)
> at org.hibernate.event.def.AbstractVisitor.process(AbstractVisi tor.java:123)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.per formUpdate(DefaultSaveOrUpdateEventListener.java:267)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.ent ityIsDetached(DefaultSaveOrUpdateEventListener.java:216)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.per formSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onS aveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
> at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl. java:502)
> at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java :494)
> at org.hibernate.engine.CascadingAction$1.cascade(CascadingActi on.java:134)
> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:213)
> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :157)
> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:10 8)
> at org.hibernate.engine.Cascade.cascade(Cascade.java:248)
> at org.hibernate.engine.Cascade.cascade(Cascade.java:223)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.cas cadeOnUpdate(DefaultSaveOrUpdateEventListener.java:331)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.per formUpdate(DefaultSaveOrUpdateEventListener.java:303)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.ent ityIsDetached(DefaultSaveOrUpdateEventListener.java:216)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.per formSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
> at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onS aveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
> at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl. java:502)
> at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java :494)
> at org.hibernate.engine.CascadingAction$1.cascade(CascadingActi on.java:134)
> at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:213)
> at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java :157)
> at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:10 8)
> at org.hibernate.engine.Cascade.cascade(Cascade.java:248)
> at org.hibernate.event.def.AbstractFlushingEventListener.cascad eOnFlush(AbstractFlushingEventListener.java:130)
> at org.hibernate.event.def.AbstractFlushingEventListener.prepar eEntityFlushes(AbstractFlushingEventListener.java:121)
> at org.hibernate.event.def.AbstractFlushingEventListener.flushE verythingToExecutions(AbstractFlushingEventListener.java:65)
> at org.hibernate.event.def.DefaultFlushEventListener.onFlush(De faultFlushEventListener.java:26)
> at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
> at org.eclipse.emf.teneo.hibernate.resource.HibernateResource.s aveResource(HibernateResource.java:210)
> ... 34 more
>
>
>
> ------------------------------------------------------------ ------------
>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [teneo] Exception when using Enums [message #594679 is a reply to message #58830] |
Tue, 24 October 2006 07:40 |
Hans Mueller-Dieckert Messages: 32 Registered: July 2009 |
Member |
|
|
Hi Martin,
I save everything in a single resource. The name of the test case is
just because I changed an old test case when trying to check out if I
can reproduce the Exception with a test case.
The funny thing is, that when I'm commenting out the marked lines down
below and run the test case twice, the second time it fails.
If you want to, I could provide you the project containing the testmodel
and the test case.
For now, here is my full testcode:
final String dataStoreName = "enumtest";
final HbDataStore dataStore =
HbHelper.INSTANCE.createRegisterDataStore(dataStoreName);
EPackage[] packages = new EPackage[] {TestmodelPackage.eINSTANCE};
dataStore.setEPackages(packages);
Properties properties = new Properties();
properties.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
properties.setProperty("hibernate.connection.url","jdbc:mysql://127.0.0.1:3306/enumtest");
properties.setProperty("hibernate.connection.username","root ");
properties.setProperty("hibernate.connection.password","system ");
properties.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLInnoDBDialect ");
dataStore.setHibernateProperties(properties);
dataStore.initialize();
EditingDomain domain = new AdapterFactoryEditingDomain(new
ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Reg istry.INSTANCE),new
BasicCommandStack());
String uriStr = "hibernate://?" + HibernateResource.DS_NAME_PARAM +
"=enumtest";
URI uri = URI.createURI(uriStr);
Resource dbResource = domain.getResourceSet().getResource(uri, true);
TestClass element1 = TestmodelFactory.eINSTANCE.createTestClass();
element1.setEnumProperty(TestEnum.ITEM1_LITERAL);
dbResource.getContents().add(element1);
// Commenting the following lines out brings up an Exception when
// running the test case twice
TestClass element2 = TestmodelFactory.eINSTANCE.createTestClass();
element2.setEnumProperty(TestEnum.ITEM1_LITERAL);
dbResource.getContents().add(element2);
dbResource.save(null);
reetings,
Hans
Martin Taal schrieb:
> Hi Hans,
> I have a testcase which tests this and it works. This exception can
> occur when you try to save an object in two different sessions. This
> occurs for example if you have references between objects in different
> resources. If you save one resource then the refered object in the other
> resource is also saved, when you then save the second resource this
> error occurs. Also the name of your testcase seems to refer to this.
> If this is the case then you can use a SessionController (url probably
> truncated by line break):
> http://www.elver.org/hibernate/hibernateresources.html#Shari ng+one+Session+between+Resources%2C+One+transaction+when+sav ing+multiple+resources
>
>
> to share a session between resources.
>
> gr. Martin
>
|
|
|
Re: [teneo] Exception when using Enums [message #594695 is a reply to message #58906] |
Tue, 24 October 2006 09:41 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Hans,
Can you send me the test project and test case?
So if you don't comment out the lines then running twice does not result in an error?
gr. Martin
Hans Mueller-Dieckert wrote:
> Hi Martin,
>
> I save everything in a single resource. The name of the test case is
> just because I changed an old test case when trying to check out if I
> can reproduce the Exception with a test case.
> The funny thing is, that when I'm commenting out the marked lines down
> below and run the test case twice, the second time it fails.
>
> If you want to, I could provide you the project containing the testmodel
> and the test case.
>
> For now, here is my full testcode:
>
>
> final String dataStoreName = "enumtest";
>
> final HbDataStore dataStore =
> HbHelper.INSTANCE.createRegisterDataStore(dataStoreName);
>
> EPackage[] packages = new EPackage[] {TestmodelPackage.eINSTANCE};
>
> dataStore.setEPackages(packages);
>
> Properties properties = new Properties();
>
> properties.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
>
> properties.setProperty("hibernate.connection.url","jdbc:mysql://127.0.0.1:3306/enumtest");
>
> properties.setProperty("hibernate.connection.username","root ");
> properties.setProperty("hibernate.connection.password","system ");
> properties.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLInnoDBDialect ");
>
>
> dataStore.setHibernateProperties(properties);
>
> dataStore.initialize();
>
> EditingDomain domain = new AdapterFactoryEditingDomain(new
> ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Reg istry.INSTANCE),new
> BasicCommandStack());
>
> String uriStr = "hibernate://?" + HibernateResource.DS_NAME_PARAM +
> "=enumtest";
> URI uri = URI.createURI(uriStr);
> Resource dbResource = domain.getResourceSet().getResource(uri, true);
>
> TestClass element1 = TestmodelFactory.eINSTANCE.createTestClass();
> element1.setEnumProperty(TestEnum.ITEM1_LITERAL);
> dbResource.getContents().add(element1);
>
> // Commenting the following lines out brings up an Exception when
> // running the test case twice
> TestClass element2 = TestmodelFactory.eINSTANCE.createTestClass();
> element2.setEnumProperty(TestEnum.ITEM1_LITERAL);
> dbResource.getContents().add(element2);
>
> dbResource.save(null);
>
> reetings,
> Hans
>
> Martin Taal schrieb:
>> Hi Hans,
>> I have a testcase which tests this and it works. This exception can
>> occur when you try to save an object in two different sessions. This
>> occurs for example if you have references between objects in different
>> resources. If you save one resource then the refered object in the
>> other resource is also saved, when you then save the second resource
>> this error occurs. Also the name of your testcase seems to refer to this.
>> If this is the case then you can use a SessionController (url probably
>> truncated by line break):
>> http://www.elver.org/hibernate/hibernateresources.html#Shari ng+one+Session+between+Resources%2C+One+transaction+when+sav ing+multiple+resources
>>
>>
>> to share a session between resources.
>>
>> gr. Martin
>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [teneo] Exception when using Enums [message #594709 is a reply to message #58957] |
Tue, 24 October 2006 10:27 |
Hans Mueller-Dieckert Messages: 32 Registered: July 2009 |
Member |
|
|
Hi Martin,
I'll send you the Project soon via mail. When not commenting out these
lines I can't even run the test case once without an exception.
greeting,
Hans
Martin Taal schrieb:
> Hi Hans,
> Can you send me the test project and test case?
> So if you don't comment out the lines then running twice does not result
> in an error?
>
> gr. Martin
>
> Hans Mueller-Dieckert wrote:
>> Hi Martin,
>>
>> I save everything in a single resource. The name of the test case is
>> just because I changed an old test case when trying to check out if I
>> can reproduce the Exception with a test case.
>> The funny thing is, that when I'm commenting out the marked lines down
>> below and run the test case twice, the second time it fails.
>>
>> If you want to, I could provide you the project containing the
>> testmodel and the test case.
>>
>> For now, here is my full testcode:
>>
>>
>> final String dataStoreName = "enumtest";
>> final HbDataStore dataStore =
>> HbHelper.INSTANCE.createRegisterDataStore(dataStoreName);
>>
>> EPackage[] packages = new EPackage[] {TestmodelPackage.eINSTANCE};
>> dataStore.setEPackages(packages);
>> Properties properties = new Properties();
>>
>> properties.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
>>
>> properties.setProperty("hibernate.connection.url","jdbc:mysql://127.0.0.1:3306/enumtest");
>>
>> properties.setProperty("hibernate.connection.username","root ");
>> properties.setProperty("hibernate.connection.password","system ");
>> properties.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLInnoDBDialect ");
>>
>>
>> dataStore.setHibernateProperties(properties);
>>
>> dataStore.initialize();
>> EditingDomain domain = new AdapterFactoryEditingDomain(new
>> ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Reg istry.INSTANCE),new
>> BasicCommandStack());
>>
>> String uriStr = "hibernate://?" + HibernateResource.DS_NAME_PARAM +
>> "=enumtest";
>> URI uri = URI.createURI(uriStr);
>> Resource dbResource = domain.getResourceSet().getResource(uri, true);
>> TestClass element1 = TestmodelFactory.eINSTANCE.createTestClass();
>> element1.setEnumProperty(TestEnum.ITEM1_LITERAL);
>> dbResource.getContents().add(element1);
>> // Commenting the following lines out brings up an Exception when
>> // running the test case twice
>> TestClass element2 = TestmodelFactory.eINSTANCE.createTestClass();
>> element2.setEnumProperty(TestEnum.ITEM1_LITERAL);
>> dbResource.getContents().add(element2);
>> dbResource.save(null);
>>
>> reetings,
>> Hans
>>
>> Martin Taal schrieb:
>>> Hi Hans,
>>> I have a testcase which tests this and it works. This exception can
>>> occur when you try to save an object in two different sessions. This
>>> occurs for example if you have references between objects in
>>> different resources. If you save one resource then the refered object
>>> in the other resource is also saved, when you then save the second
>>> resource this error occurs. Also the name of your testcase seems to
>>> refer to this.
>>> If this is the case then you can use a SessionController (url
>>> probably truncated by line break):
>>> http://www.elver.org/hibernate/hibernateresources.html#Shari ng+one+Session+between+Resources%2C+One+transaction+when+sav ing+multiple+resources
>>>
>>>
>>> to share a session between resources.
>>>
>>> gr. Martin
>>>
>
>
|
|
|
Re: [teneo] Exception when using Enums [message #594831 is a reply to message #59009] |
Wed, 25 October 2006 18:55 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Hans,
I tested this and with me the error was that the enum property was set to unique, so I got a unique
constraint violation.
This was caused by a bug that the unique property of an EAttribute was still being used for enum and
lob. I have entered a bugzilla for this:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=162256
I have committed a fix, this will be in the next build (probably friday).
Can you check if setting the unique property of the EnumProperty to false helps? You need to
regenerate the sources for Teneo to see the new unique value as it reads the runtime model.
gr. Martin
Hans Mueller-Dieckert wrote:
> Hi Martin,
>
> I'll send you the Project soon via mail. When not commenting out these
> lines I can't even run the test case once without an exception.
>
> greeting,
> Hans
>
>
> Martin Taal schrieb:
>> Hi Hans,
>> Can you send me the test project and test case?
>> So if you don't comment out the lines then running twice does not
>> result in an error?
>>
>> gr. Martin
>>
>> Hans Mueller-Dieckert wrote:
>>> Hi Martin,
>>>
>>> I save everything in a single resource. The name of the test case is
>>> just because I changed an old test case when trying to check out if I
>>> can reproduce the Exception with a test case.
>>> The funny thing is, that when I'm commenting out the marked lines
>>> down below and run the test case twice, the second time it fails.
>>>
>>> If you want to, I could provide you the project containing the
>>> testmodel and the test case.
>>>
>>> For now, here is my full testcode:
>>>
>>>
>>> final String dataStoreName = "enumtest";
>>> final HbDataStore dataStore =
>>> HbHelper.INSTANCE.createRegisterDataStore(dataStoreName);
>>>
>>> EPackage[] packages = new EPackage[] {TestmodelPackage.eINSTANCE};
>>> dataStore.setEPackages(packages);
>>> Properties properties = new Properties();
>>>
>>> properties.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
>>>
>>> properties.setProperty("hibernate.connection.url","jdbc:mysql://127.0.0.1:3306/enumtest");
>>>
>>> properties.setProperty("hibernate.connection.username","root ");
>>> properties.setProperty("hibernate.connection.password","system ");
>>> properties.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLInnoDBDialect ");
>>>
>>>
>>> dataStore.setHibernateProperties(properties);
>>>
>>> dataStore.initialize();
>>> EditingDomain domain = new AdapterFactoryEditingDomain(new
>>> ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Reg istry.INSTANCE),new
>>> BasicCommandStack());
>>>
>>> String uriStr = "hibernate://?" + HibernateResource.DS_NAME_PARAM +
>>> "=enumtest";
>>> URI uri = URI.createURI(uriStr);
>>> Resource dbResource = domain.getResourceSet().getResource(uri, true);
>>> TestClass element1 = TestmodelFactory.eINSTANCE.createTestClass();
>>> element1.setEnumProperty(TestEnum.ITEM1_LITERAL);
>>> dbResource.getContents().add(element1);
>>> // Commenting the following lines out brings up an Exception when
>>> // running the test case twice
>>> TestClass element2 = TestmodelFactory.eINSTANCE.createTestClass();
>>> element2.setEnumProperty(TestEnum.ITEM1_LITERAL);
>>> dbResource.getContents().add(element2);
>>> dbResource.save(null);
>>>
>>> reetings,
>>> Hans
>>>
>>> Martin Taal schrieb:
>>>> Hi Hans,
>>>> I have a testcase which tests this and it works. This exception can
>>>> occur when you try to save an object in two different sessions. This
>>>> occurs for example if you have references between objects in
>>>> different resources. If you save one resource then the refered
>>>> object in the other resource is also saved, when you then save the
>>>> second resource this error occurs. Also the name of your testcase
>>>> seems to refer to this.
>>>> If this is the case then you can use a SessionController (url
>>>> probably truncated by line break):
>>>> http://www.elver.org/hibernate/hibernateresources.html#Shari ng+one+Session+between+Resources%2C+One+transaction+when+sav ing+multiple+resources
>>>>
>>>>
>>>> to share a session between resources.
>>>>
>>>> gr. Martin
>>>>
>>
>>
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Goto Forum:
Current Time: Sat Oct 19 22:31:18 GMT 2024
Powered by FUDForum. Page generated in 0.04797 seconds
|