Hi List, I was trying to use ERPersistentSessionStorage (looks otherwise very promising, thx Ramsey).
I'm getting a silly NullPointerException (stacktrace below) in an application that was working perfectly before without using ERPersistantSessionStorage. I have no idea how to debug this to get more information. The problem may come from storing an EO object called PMSUser in the session (basically a user object with name, login, passwd ... PMS=prefix for the project's classes). The code is: public class Session extends ERXSession { private PMSUser currentUser = null; public PMSUser currentUser() { return currentUser; } public void setCurrentUser(PMSUser currentUser) { this.currentUser = currentUser; } ... } The page where the error occurs is the one where the user can change his/her personal data using a form like <wo:form> <wo:textfield id="inputGivenName" value = "$session.currentUser.firstName" /> ... <wo:submitButton action="$saveAction" value="save" /> </wo:form> but NOT AFTER saving, but directly before rendering the page with the form. Any ideas? Thanks in advance, C.U.CW -- Christoph Wick - Diplom Informatiker, Managing Director i4innovation GmbH, Professor-Neu-Allee 39, 53225 Bonn, Germany T +49 2 28 28 62 97 93 M +49 1 51 22 65 78 90 F +49 2 28 28 62 97 99 M c...@i4innovation.de W www.i4innovation.de Geschäftsführer: Thomas Heep, Christoph Wick Sitz der Gesellschaft: Bonn | Amtsgericht Bonn HRB 18548 | USt-IdNr.: DE276502600 Jul 29 14:41:01 PMS[65432] WARN NSLog - <er.extensions.appserver.ERXComponentRequestHandler>: Exception occurred while handling request: java.lang.NullPointerException [2013-7-29 14:41:1 MESZ] <WorkerThread0> java.lang.NullPointerException at com.webobjects.eocontrol.EOCustomObject.willReadRelationship(EOCustomObject.java:834) at er.extensions.eof.ERXGenericRecord.willReadRelationship(ERXGenericRecord.java:380) at com.webobjects.eocontrol._EOMutableKnownKeyDictionary$Initializer$_LazyGenericRecordBinding.valueInObject(_EOMutableKnownKeyDictionary.java:614) at er.extensions.eof.ERXGenericRecord$TouchingBinding.valueInObject(ERXGenericRecord.java:209) at com.webobjects.eocontrol.EOCustomObject.storedValueForKey(EOCustomObject.java:990) at com.webobjects.eocontrol.EOEditingContext._valuesForObject(EOEditingContext.java:790) at com.webobjects.eocontrol.EOCustomObject.writeObject(EOCustomObject.java:1125) at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1362) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1170) at java.io.ObjectOutputStream.access$300(ObjectOutputStream.java:161) at java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1687) at java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:478) at com.webobjects.foundation.NSDictionary.writeObject(NSDictionary.java:594) at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) at com.webobjects.appserver.WOComponent.writeObject(WOComponent.java:314) at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1362) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1170) at java.io.ObjectOutputStream.access$300(ObjectOutputStream.java:161) at java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1687) at java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:478) at com.webobjects.foundation.NSDictionary.writeObject(NSDictionary.java:594) at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) at com.webobjects.appserver.WOComponent.writeObject(WOComponent.java:314) at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1362) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1170) at java.io.ObjectOutputStream.access$300(ObjectOutputStream.java:161) at java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1687) at java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:478) at com.webobjects.foundation.NSDictionary.writeObject(NSDictionary.java:594) at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) at er.persistentsessionstorage.model.ERSessionInfo.archiveDataFromSession(ERSessionInfo.java:61) at er.persistentsessionstorage.ERPersistentSessionStore.saveSessionForContext(ERPersistentSessionStore.java:46) at com.webobjects.appserver.WOSessionStore.checkInSessionForContext(WOSessionStore.java:234) at com.webobjects.appserver.WOApplication.saveSessionForContext(WOApplication.java:1892) at er.extensions.appserver.ERXApplication.saveSessionForContext(ERXApplication.java:2381) at er.extensions.appserver.ERXComponentRequestHandler._dispatchWithPreparedApplication(ERXComponentRequestHandler.java:273) at er.extensions.appserver.ERXComponentRequestHandler._handleRequest(ERXComponentRequestHandler.java:302) at er.extensions.appserver.ERXComponentRequestHandler.handleRequest(ERXComponentRequestHandler.java:378) at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687) at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:2109) at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:2074) at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:144) at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:226) at java.lang.Thread.run(Thread.java:722) _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com