I have an app that I added a one way relationship, the to one part ( because the to many is too many) and things work, except when I go into pages that are D2W generated. Then it explodes or implodes. I get the following with wo 5.3.3 and Wonder 5.0.0:
INFO 2009-11-24 15:19:23,755 [WorkerThread0] (er.directtoweb.assignments.defaults.ERDDefaultDisplayNameAssignment) - Found an old-style entry: PropertyKey.user1->User1
INFO 2009-11-24 15:19:23,759 [WorkerThread0] (er.directtoweb.assignments.defaults.ERDDefaultDisplayNameAssignment) - Found an old-style entry: PropertyKey.user2->User2
INFO 2009-11-24 15:19:23,761 [WorkerThread0] (er.directtoweb.assignments.defaults.ERDDefaultDisplayNameAssignment) - Found an old-style entry: PropertyKey.userGroup->User Group
<< here I query an entity, not the entities involved in a one way relationship: >>
WARN 2009-11-24 15:19:29,298 [WorkerThread0] (er.extensions.eof.ERXEC) - Unlocking context that wasn't unlocked in RR-Loop!: er.extensions.eof.ERXEC@ee8f91
WARN 2009-11-24 15:19:29,298 [WorkerThread0] (er.extensions.eof.ERXEC) - Unlocking context that wasn't unlocked in RR-Loop!: er.extensions.eof.ERXEC@ee8f91
WARN 2009-11-24 15:19:29,298 [WorkerThread0] (er.extensions.eof.ERXEC) - Unlocking context that wasn't unlocked in RR-Loop!: er.extensions.eof.ERXEC@ee8f91
WARN 2009-11-24 15:19:29,298 [WorkerThread0] (NSLog) - <WOWorkerThread id=0 socket=null> Throwable occurred: java.lang.NoSuchMethodError: er.extensions.statistics.ERXStats.markStart(Ljava/lang/String;Ljava/lang/String;)V
[2009-11-24 15:19:29 EST] <WorkerThread0> java.lang.NoSuchMethodError: er.extensions.statistics.ERXStats.markStart(Ljava/lang/String;Ljava/lang/String;)V
at er.directtoweb.pages.ERD2WListPage._fetchDisplayGroup(ERD2WListPage.java:446)
at er.directtoweb.pages.ERD2WListPage.setupPhase(ERD2WListPage.java:548)
at er.directtoweb.pages.ERD2WListPage.appendToResponse(ERD2WListPage.java:479)
at com.webobjects.appserver.WOSession.appendToResponse(WOSession.java:1200)
at er.extensions.appserver.ERXSession.appendToResponse(ERXSession.java:540)
at com.webobjects.appserver.WOApplication.appendToResponse(WOApplication.java:1418)
at er.extensions.appserver.ERXApplication.appendToResponse(ERXApplication.java:1674)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOComponentRequestHandler.java:230)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:287)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:322)
at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:358)
at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:432)
at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1306)
at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:1772)
at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:1737)
at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:173)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:254)
at java.lang.Thread.run(Thread.java:613)
WARN 2009-11-24 15:19:29,299 [WorkerThread0] (NSLog) - <WOWorkerThread id=0 socket=null> Workerthread exiting due to error, respawning with ID 10000...
Exception in thread "WorkerThread0" com.webobjects.foundation.NSForwardException for java.lang.NoSuchMethodError: er.extensions.statistics.ERXStats.markStart(Ljava/lang/String;Ljava/lang/String;)V
at er.directtoweb.pages.ERD2WListPage._fetchDisplayGroup(ERD2WListPage.java:446)
at er.directtoweb.pages.ERD2WListPage.setupPhase(ERD2WListPage.java:548)
at er.directtoweb.pages.ERD2WListPage.appendToResponse(ERD2WListPage.java:479)
at com.webobjects.appserver.WOSession.appendToResponse(WOSession.java:1200)
at er.extensions.appserver.ERXSession.appendToResponse(ERXSession.java:540)
at com.webobjects.appserver.WOApplication.appendToResponse(WOApplication.java:1418)
at er.extensions.appserver.ERXApplication.appendToResponse(ERXApplication.java:1674)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOComponentRequestHandler.java:230)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:287)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:322)
at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:358)
at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:432)
at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1306)
at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:1772)
at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:1737)
at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:173)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:254)
at java.lang.Thread.run(Thread.java:613)
So I am wondering if D2W + Wonder expects 2-way relationships everywhere.
I set er.extensions.erxStats.enabled = false , but it still implodes.
Is there a rule to keep implosions at bay?
Is it a better option maybe to just expose the foreign and primary keys as entity properties and manually manage relationships ?