You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Serdyn du Toit (JIRA)" <ji...@apache.org> on 2013/07/05 12:03:48 UTC

[jira] [Updated] (OPENJPA-2407) Errors using MySql not present using HSqlDb (build-time enhancement and executing query)

     [ https://issues.apache.org/jira/browse/OPENJPA-2407?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Serdyn du Toit updated OPENJPA-2407:
------------------------------------

    Attachment: sandbox-mysqlc4.zip

Test case to illustrate.  Use the Ant file build-schema.xml for build-time enhancement.  Everything works in HSqlDb, but if you modify the persistence.xml for MySql Cluster it fails.

                
> Errors using MySql not present using HSqlDb (build-time enhancement and executing query)
> ----------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-2407
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2407
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: Enhance
>    Affects Versions: 2.2.2
>         Environment: Windows 8 using MySql Cluster
>            Reporter: Serdyn du Toit
>         Attachments: sandbox-mysqlc4.zip
>
>
> Hi,
> I'm seeing some problems when my persistence.xml is populated with details for MySql Cluster - but when I work against HSqlDb everything is working great.
> First issue during build-time enhancement:
> I get the following even though I don't have any @Embeddables in my code
> [openjpac] 407  testdb  ERROR  [main] openjpa.Enhance - The identity field defined in the code.shared.DataBean Embeddable is not supported. 
>  
> Someone else has also encountered this issue: http://stackoverflow.com/questions/16619860/openjpa-enhance-the-identity-field-defined-in-the-0-embeddable-is-not-suppo
> Second issue at runtime:
> During the second invocation of a method that should return everything from a table I get the following stacktrace:
> 1797  testdb  TRACE  [main] openjpa.jdbc.JDBC - <t 488448102, conn 0> [1 ms] close
> <openjpa-2.2.2-r422266:1468616 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: null
> 	at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:625)
> 	at org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:682)
> 	at org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1529)
> 	at org.apache.openjpa.kernel.DelegatingQuery.getOperation(DelegatingQuery.java:124)
> 	at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:280)
> 	at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:302)
> 	at test.OpenJpaTest.findAll(OpenJpaTest.java:60)
> 	at test.OpenJpaTest.findAllAndAssertSizeOfOne(OpenJpaTest.java:65)
> 	at test.OpenJpaTest.test(OpenJpaTest.java:45)
> 	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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
> 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> 	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: java.lang.NullPointerException
> 	at org.apache.openjpa.kernel.ExpressionStoreQuery.newCompilation(ExpressionStoreQuery.java:154)
> 	at org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:672)
> 	at org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:654)
> 	at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:620)
> 	... 31 more
> My persistence.xml
> <?xml version="1.0"?>
> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
>   <persistence-unit name="testdb" transaction-type="RESOURCE_LOCAL">
>     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
>     <class>code.TestDataBean</class>
>     <class>code.shared.DataBean</class>
>     <class>code.shared.AbstractDataBean</class>
>     <properties>
>       <!-- HSqlDb -->
>       <!--
>       <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
>       <property name="openjpa.ConnectionURL" value="jdbc:hsqldb:testdb" />
>       <property name="openjpa.ConnectionDriverName" value="org.hsqldb.jdbcDriver" />
>       <property name="openjpa.ConnectionUserName" value="sa" />
>       <property name="openjpa.ConnectionPassword" value="" />
>       <property name="openjpa.Log" value="DefaultLevel=TRACE" />
>       -->
>       <!-- MySql Cluster port 5000 -->
>       <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
>       <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" />
>       <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:5000/clusterdb" />
>       <property name="openjpa.ConnectionUserName" value="root" />
>       <property name="openjpa.ConnectionPassword" value="" />
>       <property name="openjpa.BrokerFactory" value="ndb" />
>       <property name="openjpa.jdbc.DBDictionary" value="TableType=ndb"/>
>       <property name="openjpa.ndb.connectString" value="localhost:1186" />
>       <property name="openjpa.ndb.database" value="clusterdb" />
>       <property name="openjpa.Log" value="DefaultLevel=TRACE" />
>     </properties>
>   </persistence-unit>
> </persistence>

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira