[jira] Closed: (CAY-1054) Error removing object from a paginated list after the object was deleted and the context committed

From: Andrus Adamchik (JIRA) ("Andrus)
Date: Mon May 12 2008 - 11:29:53 EDT

  • Next message: Andrus Adamchik (JIRA): "[jira] Assigned: (CAY-1046) Make PK metadata available via Obj* API."

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

    Andrus Adamchik closed CAY-1054.
    --------------------------------

        Resolution: Fixed

    > Error removing object from a paginated list after the object was deleted and the context committed
    > --------------------------------------------------------------------------------------------------
    >
    > Key: CAY-1054
    > URL: https://issues.apache.org/cayenne/browse/CAY-1054
    > Project: Cayenne
    > Issue Type: Bug
    > Components: Cayenne Core Library
    > Affects Versions: 3.0
    > Reporter: Andrus Adamchik
    > Assignee: Andrus Adamchik
    > Priority: Minor
    > Fix For: 3.0
    >
    >
    > This code explodes in remove:
    > SimpleIdIncrementalFaultList<Artist> list = new SimpleIdIncrementalFaultList<Artist>(
    > context,
    > query);
    > assertEquals(25, list.size());
    > Artist a1 = list.get(0);
    > context.deleteObject(a1);
    > context.commitChanges();
    > list.remove(0);
    > org.apache.cayenne.CayenneRuntimeException: [v.${project.version} ${project.build.date} ${project.build.time}] Query exception.
    > at org.apache.cayenne.access.DataDomainQueryAction.nextQueryException(DataDomainQueryAction.java:551)
    > at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:237)
    > at org.apache.cayenne.access.DataDomainQueryAction.runQuery(DataDomainQueryAction.java:424)
    > at org.apache.cayenne.access.DataDomainQueryAction.access$0(DataDomainQueryAction.java:403)
    > at org.apache.cayenne.access.DataDomainQueryAction$2.transform(DataDomainQueryAction.java:397)
    > at org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:847)
    > at org.apache.cayenne.access.DataDomainQueryAction.runQueryInTransaction(DataDomainQueryAction.java:394)
    > at org.apache.cayenne.access.UnitTestDomainQueryAction.runQueryInTransaction(UnitTestDomainQueryAction.java:55)
    > at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:120)
    > at org.apache.cayenne.access.UnitTestDomainQueryAction.execute(UnitTestDomainQueryAction.java:49)
    > at org.apache.cayenne.access.UnitTestDomain.onQuery(UnitTestDomain.java:63)
    > at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:317)
    > at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:96)
    > at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1336)
    > at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1325)
    > at org.apache.cayenne.access.IncrementalFaultList.resolveInterval(IncrementalFaultList.java:353)
    > at org.apache.cayenne.access.IncrementalFaultList.get(IncrementalFaultList.java:608)
    > at org.apache.cayenne.access.IncrementalFaultList.remove(IncrementalFaultList.java:641)
    > at org.apache.cayenne.access.SimpleIdIncrementalFaultListTest.testRemoveDeleted(SimpleIdIncrementalFaultListTest.java:66)
    > 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:585)
    > 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.JUnit3TestReference.run(JUnit3TestReference.java:130)
    > at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
    > Caused by: java.lang.NullPointerException
    > at org.apache.cayenne.access.trans.QualifierTranslator.appendObjectMatch(QualifierTranslator.java:140)
    > at org.apache.cayenne.access.trans.QualifierTranslator.endNode(QualifierTranslator.java:324)
    > at org.apache.cayenne.exp.Expression.traverse(Expression.java:470)
    > at org.apache.cayenne.exp.Expression.traverse(Expression.java:441)
    > at org.apache.cayenne.access.trans.QualifierTranslator.doAppendPart(QualifierTranslator.java:67)
    > at org.apache.cayenne.access.trans.QueryAssemblerHelper.appendPart(QueryAssemblerHelper.java:72)
    > at org.apache.cayenne.access.trans.SelectTranslator.createSqlString(SelectTranslator.java:107)
    > at org.apache.cayenne.dba.hsqldb.HSQLSelectTranslator.createSqlString(HSQLSelectTranslator.java:34)
    > at org.apache.cayenne.access.trans.QueryAssembler.createStatement(QueryAssembler.java:116)
    > at org.apache.cayenne.access.jdbc.SelectAction.performAction(SelectAction.java:72)
    > at org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:58)
    > at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:230)
    > ... 35 more

    -- 
    This message is automatically generated by JIRA.
    -
    You can reply to this email to add a comment to the issue online.
    



    This archive was generated by hypermail 2.0.0 : Mon May 12 2008 - 11:30:20 EDT