cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Gentry <mgen...@masslight.net>
Subject Re: Erratic AshwoodEntitySorter NPE on Latest Snapshot
Date Thu, 08 Dec 2016 14:17:19 GMT
Hi Peter,

This may or may not be helpful, but years ago we were getting the "roll of
the dice" issue with Ashwood as well.  We'd restart the application and the
insert error would occur in a different place.  It turns out someone had
created a circular object graph in our model and it gave Ashwood fits and
took us a while to debug.  The graph was akin to:

A -> B -> C -> D -> E -> A

Ashwood couldn't figure out a proper insert order (there isn't one with
DB-generated keys) and we were getting random failures until we cut the E
-> A relationship and then it started working again.

mrg


On Thu, Dec 8, 2016 at 7:25 AM, fael <peter.hvass@jamesinnes.com> wrote:

> Just have an update here - with M3 I am still experiencing a very random
> occurrence of the following exception still.
>
> First of all - when the webapp is run in Jetty or Tomcat (versions/OS don't
> seem to have an effect at all) there is a roll of the dice as to whether
> 'Can't extract a master key' will rear its ugly head.
>
> Secondly - when it does rear its ugly head there is a further roll of the
> dice for which insert it occurs on - though it will always occur.
>
> This is really making patching and testing a proper nightmare - as such I
> wondered if anyone else was experiencing this or could shed light on a
> workaround or fix.
>
> Stack Trace:
> org.apache.cayenne.CayenneRuntimeException: [v.4.0.M3 Feb 08 2016
> 16:38:05]
> Can't extract a master key. Missing key (id), master ID ()
> at
> org.apache.cayenne.access.DataDomainSyncBucket$
> PropagatedValueFactory.create(DataDomainSyncBucket.java:311)
> at org.apache.cayenne.query.BatchQueryRow.getValue(BatchQueryRow.java:64)
> at
> org.apache.cayenne.query.InsertBatchQuery$1.getValue(
> InsertBatchQuery.java:64)
> at
> org.apache.cayenne.access.translator.batch.InsertBatchTranslator.
> doUpdateBindings(InsertBatchTranslator.java:119)
> at
> org.apache.cayenne.access.translator.batch.DefaultBatchTranslator.
> updateBindings(DefaultBatchTranslator.java:78)
> at
> org.apache.cayenne.access.jdbc.BatchAction.runAsIndividualQueries(
> BatchAction.java:169)
> at
> org.apache.cayenne.access.jdbc.BatchAction.performAction(BatchAction.
> java:92)
> at
> org.apache.cayenne.access.DataNodeQueryAction.runQuery(
> DataNodeQueryAction.java:97)
> at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:306)
> at
> org.apache.cayenne.access.DataDomainFlushAction.runQueries(
> DataDomainFlushAction.java:234)
> at
> org.apache.cayenne.access.DataDomainFlushAction.flush(
> DataDomainFlushAction.java:155)
> at org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:629)
> at org.apache.cayenne.access.DataDomain.onSyncNoFilters(
> DataDomain.java:598)
> at
> org.apache.cayenne.access.DataDomain$DataDomainSyncFilterChain.
> onSync(DataDomain.java:746)
> at
> org.apache.cayenne.tx.TransactionFilter$1.perform(
> TransactionFilter.java:73)
> at
> org.apache.cayenne.tx.TransactionFilter$1.perform(
> TransactionFilter.java:70)
> at
> org.apache.cayenne.tx.DefaultTransactionManager.performInTransaction(
> DefaultTransactionManager.java:53)
> at org.apache.cayenne.tx.TransactionFilter.onSync(
> TransactionFilter.java:70)
> at
> org.apache.cayenne.access.DataDomain$DataDomainSyncFilterChain.
> onSync(DataDomain.java:746)
> at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:585)
> at org.apache.cayenne.access.DataContext.flushToParent(
> DataContext.java:744)
> at org.apache.cayenne.access.DataContext.commitChanges(
> DataContext.java:693)
>
>
>
> --
> View this message in context: http://cayenne.195.n3.nabble.com/Erratic-
> AshwoodEntitySorter-NPE-on-Latest-Snapshot-tp4027453p4028307.html
> Sent from the Cayenne - User mailing list archive at Nabble.com.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message