Hang on, that may be a red herring. I was printing out EOModelGroup.defaultGroup() in Application.didFinishLaunching() as one of the first things I tried to debug this. Removing that, it looks more sensible:
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Thread.java:1230)
at er.extensions.eof.ERXModelGroup.loadModelsFromLoadedBundles(ERXModelGroup.java:125)
at er.extensions.ERXExtensions.defaultModelGroup(ERXExtensions.java:135)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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:155)
at com.webobjects.eoaccess.EOModelGroup.defaultGroup(EOModelGroup.java:328)
at net.logicsquad.pbf.components.pages.LogIn.allNotices(LogIn.java:99)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1.methodValue(NSKeyValueCoding.java:636)
at com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKeyValueCoding.java:1134)
at com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueForKey(NSKeyValueCoding.java:1324)
at com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1736)
at com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCoding.java:447)
at com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:216)
at com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1804)
at net.logicsquad.webobjects.components.LSComponent.valueForKeyPath(LSComponent.java:347)
at com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent(WOKeyValueAssociation.java:50)
at com.webobjects.appserver.WOAssociation.booleanValueInComponent(WOAssociation.java:276)
at er.extensions.components.conditionals.ERXWOConditional.conditionInComponent(ERXWOConditional.java:47)
at er.extensions.components.conditionals.ERXWOConditional.meetsConditionInComponent(ERXWOConditional.java:52)
at er.extensions.components.conditionals.ERXWOConditional.appendToResponse(ERXWOConditional.java:120)
at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
at com.webobjects.appserver._private.WODynamicGroup.appendToResponse(WODynamicGroup.java:136)
at com.webobjects.appserver._private.WOComponentContent.appendToResponse(WOComponentContent.java:51)
at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
at com.webobjects.appserver._private.WODynamicGroup.appendToResponse(WODynamicGroup.java:136)
at com.webobjects.appserver.WOComponent.appendToResponse(WOComponent.java:1122)
at er.extensions.components.ERXComponent.appendToResponse(ERXComponent.java:107)
at net.logicsquad.webobjects.components.LSComponent.appendToResponse(LSComponent.java:465)
at com.webobjects.appserver._private.WOComponentReference.appendToResponse(WOComponentReference.java:135)
at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
at com.webobjects.appserver._private.WODynamicGroup.appendToResponse(WODynamicGroup.java:136)
at com.webobjects.appserver.WOComponent.appendToResponse(WOComponent.java:1122)
at er.extensions.components.ERXComponent.appendToResponse(ERXComponent.java:107)
at net.logicsquad.webobjects.components.LSComponent.appendToResponse(LSComponent.java:465)
at com.webobjects.appserver._private.WOComponentReference.appendToResponse(WOComponentReference.java:135)
at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
at com.webobjects.appserver._private.WODynamicGroup.appendToResponse(WODynamicGroup.java:136)
at com.webobjects.appserver.WOComponent.appendToResponse(WOComponent.java:1122)
at er.extensions.components.ERXComponent.appendToResponse(ERXComponent.java:107)
at net.logicsquad.webobjects.components.LSComponent.appendToResponse(LSComponent.java:465)
at com.webobjects.appserver.WOComponent._appendPageToResponse(WOComponent.java:1574)
at com.webobjects.appserver.WOComponent._generateResponseInContext(WOComponent.java:1543)
at com.webobjects.appserver.WOComponent.generateResponse(WOComponent.java:1538)
at com.webobjects.appserver._private.WOActionRequestHandler._handleRequest(WOActionRequestHandler.java:278)
at com.webobjects.appserver._private.WOActionRequestHandler.handleRequest(WOActionRequestHandler.java:158)
at er.extensions.appserver.ERXDirectActionRequestHandler.handleRequest(ERXDirectActionRequestHandler.java:124)
at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:1904)
at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:1869)
at net.logicsquad.webobjects.app.LSApplication.dispatchRequest(LSApplication.java:381)
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:637)
_And_, all the models are now adjusted before LogIn.allNotices() is called in the default page. I've presumably done something in the meantime to fix it. I'll start working backwards and see if I can find it...