Last year, I had an intermittent exception thrown seemingly at random. Something odd is happening from deep within EOF and it isn’t easily reproducible as far as I can tell.
I now have the full stack trace. Does this look familiar to anyone?
java.lang.NullPointerException
at com.webobjects.eocontrol._EOMutableKnownKeyDictionary.<init>(_EOMutableKnownKeyDictionary.java:106)
at com.webobjects.eoaccess.EORelationship._foreignKeyForSourceRow(EORelationship.java:1148)
at com.webobjects.eoaccess.EODatabaseContext._followToManyRelationshipWithFetchSpecification(EODatabaseContext.java:2497)
at com.webobjects.eoaccess.EODatabaseContext._followFetchSpecification(EODatabaseContext.java:2636)
at com.webobjects.eoaccess.EODatabaseContext._batchFetchRelationshipForSourceObjectsEditingContext(EODatabaseContext.java:3734)
at com.webobjects.eoaccess.EODatabaseContext.batchFetchRelationship(EODatabaseContext.java:3816)
at er.extensions.eof.ERXEOAccessUtilities.batchFetchRelationship(ERXEOAccessUtilities.java:1913)
at er.extensions.eof.ERXDatabaseContextDelegate.doFetch(ERXDatabaseContextDelegate.java:781)
at er.extensions.eof.ERXDatabaseContextDelegate.batchFetchToManyFault(ERXDatabaseContextDelegate.java:669)
at er.extensions.eof.ERXDatabaseContextDelegate.databaseContextShouldFetchArrayFault(ERXDatabaseContextDelegate.java:391)
at sun.reflect.GeneratedMethodAccessor81.invoke(null:Unknown)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:122)
at com.webobjects.foundation._NSDelegate._perform(_NSDelegate.java:223)
at com.webobjects.foundation._NSDelegate.perform(_NSDelegate.java:163)
at com.webobjects.eoaccess.EODatabaseContext._fireArrayFault(EODatabaseContext.java:4236)
at com.webobjects.eoaccess.EOAccessArrayFaultHandler.completeInitializationOfObject(EOAccessArrayFaultHandler.java:77)
at com.webobjects.eocontrol._EOCheapCopyMutableArray.willRead(_EOCheapCopyMutableArray.java:39)
at com.webobjects.eocontrol._EOCheapCopyMutableArray.count(_EOCheapCopyMutableArray.java:99)
at com.webobjects.eocontrol.EOSortOrdering._sortUsingKeyOrderArray(EOSortOrdering.java:185)
at com.webobjects.eocontrol.EOSortOrdering.sortedArrayUsingKeyOrderArray(EOSortOrdering.java:249)
at com.eldrix.rsdb.model._Patient.addresses(_Patient.java:748)
at com.eldrix.rsdb.model.Patient.addressForDate(Patient.java:289)
at com.eldrix.rsdb.model.Patient.currentAddress(Patient.java:277)