Re: very old app (no wonder) crashes with _EOGlobalModelLock:java.lang.NoSuchFieldError
Re: very old app (no wonder) crashes with _EOGlobalModelLock:java.lang.NoSuchFieldError
- Subject: Re: very old app (no wonder) crashes with _EOGlobalModelLock:java.lang.NoSuchFieldError
- From: Markus Ruggiero <email@hidden>
- Date: Wed, 10 Feb 2016 19:16:23 +0100
> On 10.02.2016, at 16:46, Johann Werner <email@hidden> wrote:
>
> Hi Markus,
>
> perhaps a mix of different WO versions? That old app using WO 5.3, 5.2, … and installed on the OS X machine 5.4? The field _EOGlobalModelLock comes from the WO jars or should be as it is not found apparently.
>
> jw
Yes, that was it. App was compiled/linked against 5.2.3 but the OS X the customer had installed had 5.4.2 in /System/Library/Frameworks. Had to put the older Frameworks someplace and edit the startup script inside .woa to define WOROOT properly. The default script tests against OS name, finds Darwin, and hardcodes /System/Library/Frameworks
Thanks for your tips, problem solved, customer happy, me happy, too :-)
Owe you a beer in Montréal
---markus---
>
>
>> Am 10.02.2016 um 16:24 schrieb Markus Ruggiero <email@hidden>:
>>
>> A customer of mine has a very old WebObjects app running on an old Sun Solaris box. The app was built on WindowsXP with Project Builder. No Wonder anywhere to be seen.
>>
>> We are trying to get this app (the xyz.woa) up and running on a MacMini OS X 10.9.5. We have both Java 1.6 and Java 8 available. We succeeded to start the app via Monitor. The default Main shows but the app fails with the following exception when the code tries to execute this line:
>>
>> loggedUser = (ZpdUser)EOUtilities.objectMatchinKeyAncValue(ec, "ZpdUser", "sUserId", userId);
>>
>>
>> Exception logging in User: com.webobjects.foundation.NSForwardException [java.lang.NoSuchFieldError] _EOGlobalModelLock:java.lang.NoSuchFieldError: _EOGlobalModelLock
>> com.webobjects.foundation.NSForwardException [java.lang.NoSuchFieldError] _EOGlobalModelLock:java.lang.NoSuchFieldError: _EOGlobalModelLock
>> at com.webobjects.foundation.NSForwardException._runtimeExceptionForThrowable(NSForwardException.java:39)
>> at com.webobjects.foundation.NSSelector._safeInvokeMethod(NSSelector.java:124)
>> at com.webobjects.foundation.NSNotificationCenter$_Entry.invokeMethod(NSNotificationCenter.java:588)
>> at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:532)
>> at com.webobjects.foundation.NSNotificationCenter.postNotification(NSNotificationCenter.java:562)
>> at com.webobjects.eocontrol.EOObjectStoreCoordinator.requestStore(EOObjectStoreCoordinator.java:223)
>> at com.webobjects.eocontrol.EOObjectStoreCoordinator.objectStoreForFetchSpecification(EOObjectStoreCoordinator.java:287)
>> at com.webobjects.eocontrol.EOObjectStoreCoordinator.objectsWithFetchSpecification(EOObjectStoreCoordinator.java:476)
>> at com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(EOEditingContext.java:4069)
>> at com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(EOEditingContext.java:4444)
>> at com.webobjects.eoaccess.EOUtilities.objectsMatchingValues(EOUtilities.java:216)
>> at com.webobjects.eoaccess.EOUtilities.objectsMatchingKeyAndValue(EOUtilities.java:190)
>> at com.webobjects.eoaccess.EOUtilities.objectMatchingKeyAndValue(EOUtilities.java:320)
>> at LoginUser.login(LoginUser.java:51)
>> at DirectAction._doLogin(DirectAction.java:42)
>> at DirectAction.zpdGuestLoginAction(DirectAction.java:31)
>> 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.appserver.WODirectAction.performActionNamed(WODirectAction.java:144)
>> at com.webobjects.appserver._private.WOActionRequestHandler._handleRequest(WOActionRequestHandler.java:259)
>> at com.webobjects.appserver._private.WOActionRequestHandler.handleRequest(WOActionRequestHandler.java:158)
>> at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
>> 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:695)
>> Caused by: java.lang.NoSuchFieldError: _EOGlobalModelLock
>> at ZpdDB$UnbrokenEOModel.entityNamed(ZpdDB.java:41)
>> at com.webobjects.eoaccess.EOModelGroup.entityNamed(EOModelGroup.java:493)
>> at com.webobjects.eoaccess.EODatabaseContext._cooperatingObjectStoreNeeded(EODatabaseContext.java:1169)
>> 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)
>>
>> The very same code running against the same database works from Solaris. I have currently no easy access to the source (somewhere on a XP Machine). Any idea what could be wrong? For a test the customer has copied the xyz.woa directory to a different Sun workstation (where Apple WebObjects runtime has been installed) and tried it there with the very same exception. So it looks as if we miss something in the environment setup. Question is: What?
>>
>> Background: The customer has once (>4 years ago) asked me to port the application to the modern world but then cancelled the project. And now the old Solaris box is dying and the customer desparately needs a replacement deployment environment. About a dozen apps have been moved over from Soalris to OS X with no problem (all Wonder), just this baby refuses to work (no Wonder - pun intended). And of course we have no time now to Wonderize, recompile, and test things.
>>
>> Thanks for any hints
>> ---markus---
>>
>>
>> _______________________________________________
>> 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
>
_______________________________________________
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