cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nikita Timofeev <ntimof...@objectstyle.com>
Subject Re: [VOTE] Apache Cayenne 4.2.M1 release
Date Mon, 13 Apr 2020 08:40:24 GMT
Hi Andrus,

Yes, LinkMove problems related to batch generated keys. The problem is
with AutoAdapter, it simply doesn't define
supportsGeneratedKeysForBatchInserts() method.
DerbyAdapter itself works fine.

On Sun, Apr 12, 2020 at 11:47 AM Andrus Adamchik <andrus@objectstyle.org> wrote:
>
> Still testing the release... As expected 4.2 is no longer a drop-in replacement of 4.0
for either Agrest or LinkMove (because of the Property class refactoring). So I made a few
tweaks to LM to make it compile [1]. Now I am getting the following error on commit in a bunch
of tests (e.g. CreateIT) [2].
>
> Is this related to 57332e865f5dabb9c7adef4bac9a61137f6828c4 (batch mode and PKs on Derby)
?
>
> (Derby version used in tests is 10.14.2.0 - the latest that supports Java 8)
>
> Andrus
>
>
> > On Apr 7, 2020, at 2:03 PM, Nikita Timofeev <ntimofeev@objectstyle.com> wrote:
> >
> > Hi all,
> >
> > Here is another try for the Cayenne 4.2.M1 release.
> >
> > Release notes: https://github.com/apache/cayenne/blob/4.2.M1/RELEASE-NOTES.txt
> > Maven repo: https://repository.apache.org/content/repositories/orgapachecayenne-1038/
> > Assemblies: https://dist.apache.org/repos/dist/dev/cayenne/4.2.M1/
> >
> > Please evaluate and cast your votes.
> >
> > --
> > Best regards,
> > Nikita Timofeev
>
>
> [1] https://github.com/nhl/link-move/tree/cayenne-4.2 <https://github.com/nhl/link-move/tree/cayenne-4.2>
>
> [2]  org.apache.cayenne.CayenneRuntimeException: [v.4.2.M1 Apr 07 2020 09:32:02] Mismatching
number of generated PKs: expected 2, instead got 1
> at org.apache.cayenne.access.flush.FlushObserver.nextGeneratedRows(FlushObserver.java:77)
> at org.apache.cayenne.access.DataNodeQueryAction$1.nextGeneratedRows(DataNodeQueryAction.java:77)
> at org.apache.cayenne.access.jdbc.BatchAction.processGeneratedKeys(BatchAction.java:288)
> at org.apache.cayenne.access.jdbc.BatchAction.runAsBatch(BatchAction.java:133)
> at org.apache.cayenne.access.jdbc.BatchAction.performAction(BatchAction.java:94)
> at org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:97)
> at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:273)
> at org.apache.cayenne.access.flush.DefaultDataDomainFlushAction.lambda$executeQueries$6(DefaultDataDomainFlushAction.java:175)
> at java.util.HashMap.forEach(HashMap.java:1288)
> at org.apache.cayenne.access.flush.DefaultDataDomainFlushAction.executeQueries(DefaultDataDomainFlushAction.java:174)
> at org.apache.cayenne.access.flush.DefaultDataDomainFlushAction.flush(DefaultDataDomainFlushAction.java:89)
> at org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:637)
> at org.apache.cayenne.access.DataDomain.onSyncNoFilters(DataDomain.java:609)
> at org.apache.cayenne.access.DataDomain$DataDomainSyncFilterChain.onSync(DataDomain.java:835)
> at org.apache.cayenne.tx.TransactionFilter.lambda$onSync$0(TransactionFilter.java:61)
> at org.apache.cayenne.tx.DefaultTransactionManager$BaseTransactionHandler.performInTransaction(DefaultTransactionManager.java:180)
> at org.apache.cayenne.tx.DefaultTransactionManager$BaseTransactionHandler.performInNewTransaction(DefaultTransactionManager.java:152)
> at org.apache.cayenne.tx.DefaultTransactionManager$NestedTransactionHandler.handle(DefaultTransactionManager.java:95)
> at org.apache.cayenne.tx.DefaultTransactionManager.performInTransaction(DefaultTransactionManager.java:62)
> at org.apache.cayenne.tx.DefaultTransactionManager.performInTransaction(DefaultTransactionManager.java:40)
> at org.apache.cayenne.tx.TransactionFilter.onSync(TransactionFilter.java:61)
> at org.apache.cayenne.access.DataDomain$DataDomainSyncFilterChain.onSync(DataDomain.java:834)
> at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:596)
> at org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:737)
> at org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:686)
> at com.nhl.link.move.runtime.task.create.CreateSegmentProcessor.commitTarget(CreateSegmentProcessor.java:63)
> at com.nhl.link.move.runtime.task.create.CreateSegmentProcessor.process(CreateSegmentProcessor.java:44)
> at com.nhl.link.move.runtime.task.create.CreateTask.lambda$createBatchProcessor$1(CreateTask.java:72)
> at com.nhl.link.move.batch.BatchRunner.run(BatchRunner.java:57)
> at com.nhl.link.move.runtime.task.create.CreateTask.doRun(CreateTask.java:62)
> at com.nhl.link.move.runtime.task.BaseTask.run(BaseTask.java:46)
> at com.nhl.link.move.LmTask.run(LmTask.java:31)
> at com.nhl.link.move.runtime.task.BaseTask.run(BaseTask.java:39)
> at com.nhl.link.move.LmTask.run(LmTask.java:19)
> at com.nhl.link.move.itest.CreateIT.testSync(CreateIT.java:24)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
>


-- 
Best regards,
Nikita Timofeev

Mime
View raw message