You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Ulrich Hermsen (JIRA)" <ji...@apache.org> on 2009/02/25 08:59:01 UTC
[jira] Created: (OPENJPA-940) Using table-generator in XML
descriptor results in ClassCastException
Using table-generator in XML descriptor results in ClassCastException
---------------------------------------------------------------------
Key: OPENJPA-940
URL: https://issues.apache.org/jira/browse/OPENJPA-940
Project: OpenJPA
Issue Type: Bug
Affects Versions: 1.2.0, 2.0.0
Environment: Windows XP
Java SE 6 Update 11
Reporter: Ulrich Hermsen
Priority: Critical
Defining a table generator in the XML descriptor leads to a class cast exception. The reason is a probably unintentional fall through of a switch/case block in class XMLPersistenceMetaDataSerializer line 502:
...
switch (type) {
case TYPE_META:
serializeClass((ClassMetaData) obj, fieldAccess
&& propertyAccess);
break;
case TYPE_SEQ:
if (isMappingMode())
serializeSequence((SequenceMetaData) obj);
// HERE SHOULD BE A break;
case TYPE_QUERY:
serializeQuery((QueryMetaData) obj);
break;
...
As a result I get the following stack:
219 testPU INFO [main] openjpa.Runtime - Starting OpenJPA 1.2.0
688 testPU INFO [main] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.DerbyDictionary".
3329 testPU WARN [main] openjpa.MetaData - Found duplicate generator "tableGen" in "class com.daimler.tss.lab.jpa.pojo.Slave". Ignoring.
3830 testPU INFO [main] openjpa.MetaData - Writing to file "C:\Uli\Workspaces\TSS_ganymede_2\OpenJPA Test\build\classes\META-INF\test-orm.xml".
3986 testPU INFO [main] openjpa.MetaData - Writing sequence "tableGen".
Exception in thread "main" <openjpa-1.2.0-r422266:683325 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: org.apache.openjpa.jdbc.meta.SequenceMapping cannot be cast to org.apache.openjpa.meta.QueryMetaData
at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:196)
at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
at com.daimler.tss.lab.jpa.test.RelationshipManagementTest.createMaster(RelationshipManagementTest.java:47)
at com.daimler.tss.lab.jpa.test.RelationshipManagementTest.main(RelationshipManagementTest.java:39)
Caused by: java.lang.ClassCastException: org.apache.openjpa.jdbc.meta.SequenceMapping cannot be cast to org.apache.openjpa.meta.QueryMetaData
at org.apache.openjpa.persistence.XMLPersistenceMetaDataSerializer.serialize(XMLPersistenceMetaDataSerializer.java:504)
at org.apache.openjpa.lib.meta.XMLMetaDataSerializer.serialize(XMLMetaDataSerializer.java:257)
at org.apache.openjpa.lib.meta.XMLMetaDataSerializer.serialize(XMLMetaDataSerializer.java:121)
at org.apache.openjpa.lib.meta.XMLMetaDataSerializer.serialize(XMLMetaDataSerializer.java:90)
at org.apache.openjpa.meta.AbstractCFMetaDataFactory.serialize(AbstractCFMetaDataFactory.java:479)
at org.apache.openjpa.meta.AbstractCFMetaDataFactory.store(AbstractCFMetaDataFactory.java:234)
at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:538)
at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:453)
at org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:159)
at org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:119)
at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:189)
... 6 more
May I suggest to run findBugs on your source code. That would have found this section for sure. Does anyone test the XML descriptor stuff?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Assigned: (OPENJPA-940) Using table-generator in XML
descriptor results in ClassCastException
Posted by "Catalina Wei (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OPENJPA-940?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Catalina Wei reassigned OPENJPA-940:
------------------------------------
Assignee: Catalina Wei
> Using table-generator in XML descriptor results in ClassCastException
> ---------------------------------------------------------------------
>
> Key: OPENJPA-940
> URL: https://issues.apache.org/jira/browse/OPENJPA-940
> Project: OpenJPA
> Issue Type: Bug
> Affects Versions: 1.2.0, 2.0.0-M2
> Environment: Windows XP
> Java SE 6 Update 11
> Reporter: Ulrich Hermsen
> Assignee: Catalina Wei
> Priority: Critical
> Original Estimate: 0.33h
> Remaining Estimate: 0.33h
>
> Defining a table generator in the XML descriptor leads to a class cast exception. The reason is a probably unintentional fall through of a switch/case block in class XMLPersistenceMetaDataSerializer line 502:
> ...
> switch (type) {
> case TYPE_META:
> serializeClass((ClassMetaData) obj, fieldAccess
> && propertyAccess);
> break;
> case TYPE_SEQ:
> if (isMappingMode())
> serializeSequence((SequenceMetaData) obj);
> // HERE SHOULD BE A break;
> case TYPE_QUERY:
> serializeQuery((QueryMetaData) obj);
> break;
> ...
> As a result I get the following stack:
> 219 testPU INFO [main] openjpa.Runtime - Starting OpenJPA 1.2.0
> 688 testPU INFO [main] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.DerbyDictionary".
> 3329 testPU WARN [main] openjpa.MetaData - Found duplicate generator "tableGen" in "class com.daimler.tss.lab.jpa.pojo.Slave". Ignoring.
> 3830 testPU INFO [main] openjpa.MetaData - Writing to file "C:\Uli\Workspaces\TSS_ganymede_2\OpenJPA Test\build\classes\META-INF\test-orm.xml".
> 3986 testPU INFO [main] openjpa.MetaData - Writing sequence "tableGen".
> Exception in thread "main" <openjpa-1.2.0-r422266:683325 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: org.apache.openjpa.jdbc.meta.SequenceMapping cannot be cast to org.apache.openjpa.meta.QueryMetaData
> at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:196)
> at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
> at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
> at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
> at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
> at com.daimler.tss.lab.jpa.test.RelationshipManagementTest.createMaster(RelationshipManagementTest.java:47)
> at com.daimler.tss.lab.jpa.test.RelationshipManagementTest.main(RelationshipManagementTest.java:39)
> Caused by: java.lang.ClassCastException: org.apache.openjpa.jdbc.meta.SequenceMapping cannot be cast to org.apache.openjpa.meta.QueryMetaData
> at org.apache.openjpa.persistence.XMLPersistenceMetaDataSerializer.serialize(XMLPersistenceMetaDataSerializer.java:504)
> at org.apache.openjpa.lib.meta.XMLMetaDataSerializer.serialize(XMLMetaDataSerializer.java:257)
> at org.apache.openjpa.lib.meta.XMLMetaDataSerializer.serialize(XMLMetaDataSerializer.java:121)
> at org.apache.openjpa.lib.meta.XMLMetaDataSerializer.serialize(XMLMetaDataSerializer.java:90)
> at org.apache.openjpa.meta.AbstractCFMetaDataFactory.serialize(AbstractCFMetaDataFactory.java:479)
> at org.apache.openjpa.meta.AbstractCFMetaDataFactory.store(AbstractCFMetaDataFactory.java:234)
> at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:538)
> at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:453)
> at org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:159)
> at org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:119)
> at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:189)
> ... 6 more
> May I suggest to run findBugs on your source code. That would have found this section for sure. Does anyone test the XML descriptor stuff?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.