Uploaded image for project: 'OpenJPA'
  1. OpenJPA
  2. OPENJPA-2302

Slice support for QueryCompilationCache

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.2.1, 2.3.0
    • None
    • slice
    • None

    Description

      It seems that slice doesn't support QueryCompilationCache.
      By running the following test case ...

      public class TestQueryCompilationCache extends SliceTestCase {

      /**

      • Specify persistence unit name as System property
      • <code>-Dunit</code> or use the default value as
      • <code>"slice"</code>.
        */
        protected String getPersistenceUnitName() { return System.getProperty("unit", "slice"); }

      @Override
      public void setUp()

      { super.setUp(PObject.class, "openjpa.QueryCompilationCache", "true"); }

      public void testQueryCompilationCache()
      throws Exception

      { OpenJPAEntityManager em = emf.createEntityManager(); em.getTransaction().begin(); em.createQuery("SELECT o from PObject o").getResultList(); em.getTransaction().commit(); em.close(); em = emf.createEntityManager(); em.createQuery("SELECT o from PObject o").getResultList(); em.close(); emf.close(); }

      }

      The following exception will be raised.

      testQueryCompilationCache(org.apache.openjpa.slice.TestQueryCompilationCache) Time elapsed: 1.923 sec <<< ERROR!
      <openjpa-2.3.0-SNAPSHOT-r422266:1416742 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: The context has been closed. The stack trace at which the context was closed is available if Runtime=TRACE logging is enabled.
      at org.apache.openjpa.slice.jdbc.DistributedStoreQuery$ParallelExecutor.executeQuery(DistributedStoreQuery.java:156)
      at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1005)
      at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:863)
      at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:794)
      at org.apache.openjpa.slice.DistributedQueryImpl.execute(DistributedQueryImpl.java:61)
      at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542)
      at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:286)
      at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:302)
      at org.apache.openjpa.slice.TestQueryCompilationCache.testQueryCompilationCache(TestQueryCompilationCache.java:57)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      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 org.apache.openjpa.slice.PersistenceTestCase.run(PersistenceTestCase.java:124)
      at junit.framework.TestSuite.runTest(TestSuite.java:208)
      at junit.framework.TestSuite.run(TestSuite.java:203)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
      at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:115)
      at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:102)
      at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
      at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
      Caused by: <openjpa-2.3.0-SNAPSHOT-r422266:1416742 fatal user error> org.apache.openjpa.persistence.InvalidStateException: The context has been closed. The stack trace at which the context was closed is available if Runtime=TRACE logging is enabled.
      at org.apache.openjpa.kernel.BrokerImpl.assertOpen(BrokerImpl.java:4683)
      at org.apache.openjpa.kernel.QueryImpl.assertOpen(QueryImpl.java:1700)
      at org.apache.openjpa.kernel.QueryImpl.isUnique(QueryImpl.java:453)
      at org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.calculateEagerMode(JDBCStoreQuery.java:483)
      at org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.executeQuery(JDBCStoreQuery.java:174)
      at org.apache.openjpa.kernel.ExpressionStoreQuery$DataStoreExecutor.executeQuery(ExpressionStoreQuery.java:783)
      at org.apache.openjpa.slice.jdbc.DistributedStoreQuery$QueryExecutor.call(DistributedStoreQuery.java:273)
      at org.apache.openjpa.slice.jdbc.DistributedStoreQuery$QueryExecutor.call(DistributedStoreQuery.java:266)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:680)

      Attachments

        1. patch.diff
          10 kB
          Fabio Martelli

        Issue Links

          Activity

            People

              Unassigned Unassigned
              fmartelli Fabio Martelli
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: