NPE in ERXObjectStoreCoordinatorSynchronizer
NPE in ERXObjectStoreCoordinatorSynchronizer
- Subject: NPE in ERXObjectStoreCoordinatorSynchronizer
- From: Paul Hoadley <email@hidden>
- Date: Wed, 19 Oct 2016 13:12:29 +1030
Hello,
I seem to be starting a number of posts in this way, but… I’m seeing very occasional stack traces from the wild that look like this:
Oct 17 23:10:57 Relief[2002] ERROR er.extensions.eof.ERXObjectStoreCoordinatorSynchronizer - java.lang.NullPointerException NullPointerException at com.webobjects.eocontrol.EOCustomObject.willReadRelationship(EOCustomObject.java:1270) at er.extensions.eof.ERXGenericRecord.willReadRelationship(ERXGenericRecord.java:385) at com.webobjects.eocontrol._EOMutableKnownKeyDictionary$Initializer$_LazyGenericRecordBinding.valueInObject(_EOMutableKnownKeyDictionary.java:614) at er.extensions.eof.ERXGenericRecord$TouchingBinding.valueInObject(ERXGenericRecord.java:214) at com.webobjects.eocontrol.EOCustomObject.storedValueForKey(EOCustomObject.java:1634) at net.logicsquad.relief.model._Job.classTeacher(_Job.java:192) ... skipped 6 stack elements at er.extensions.eof.ERXGenericRecord$InverseRelationshipUpdater.includeObjectIntoPropertyWithKey(ERXGenericRecord.java:1367) at er.extensions.eof.ERXGenericRecord.includeObjectIntoPropertyWithKey(ERXGenericRecord.java:1225) at net.logicsquad.relief.model._ClassTeacher.addToJobs(_ClassTeacher.java:212) ... skipped 5 stack elements at com.webobjects.eocontrol.EOCustomObject.addObjectToPropertyWithKey(EOCustomObject.java:940) at com.webobjects.eocontrol.EOEditingContext._mergeValueForKey(EOEditingContext.java:660) at com.webobjects.eocontrol.EOEditingContext._mergeObjectWithChanges(EOEditingContext.java:3457) at com.webobjects.eocontrol.EOEditingContext._processObjectStoreChanges(EOEditingContext.java:3546) at er.extensions.eof.ERXEC._processObjectStoreChanges(ERXEC.java:1549) ... skipped 5 stack elements at com.webobjects.eocontrol.EOEditingContext._sendOrEnqueueNotification(EOEditingContext.java:4715) at com.webobjects.eocontrol.EOEditingContext._objectsChangedInStore(EOEditingContext.java:3562) at er.extensions.eof.ERXEC._objectsChangedInStore(ERXEC.java:1489) ... skipped 7 stack elements at com.webobjects.eocontrol.EOObjectStoreCoordinator._objectsChangedInSubStore(EOObjectStoreCoordinator.java:693) ... skipped 7 stack elements at er.extensions.eof.ERXObjectStoreCoordinatorSynchronizer$ProcessChangesQueue$ToManyUpdateCacheChangeProcessor.processCacheChange(ERXObjectStoreCoordinatorSynchronizer.java:466) at er.extensions.eof.ERXObjectStoreCoordinatorSynchronizer$ProcessChangesQueue.processRemoteChange(ERXObjectStoreCoordinatorSynchronizer.java:566) at er.extensions.eof.ERXObjectStoreCoordinatorSynchronizer$ProcessChangesQueue.run(ERXObjectStoreCoordinatorSynchronizer.java:622) ... skipped 1 stack elements
We’re running an app here using ERJGroupsSynchronizer, (very) slightly modified to work in an AWS EC2 environment. The app sees what you’d have to describe as a low level of concurrency. What I assume I’m seeing above is an instance processing an incoming change notification, and hitting an NPE. This is EOCustomObject at 1270:
ec.lockObjectStore();
So some EC has presumably turned to null. What happens next is that that instance seems to see (or at least process) no further change notifications, and its view of the database gets stale in the usual way.
Does anyone want to take a guess at this one?
|
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden