Re: java client relationship bug?
Re: java client relationship bug?
- Subject: Re: java client relationship bug?
- From: Robert Walker <email@hidden>
- Date: Thu, 24 Mar 2005 19:50:19 -0500
Robert,
Yes this is definitely a WebObjects bug. You will need to contact
Apple support to get a patch that will fix this specific bug. I've
also seen some other odd behavior with JavaClient in WO 5.2.3 related
to date formatters attached to text boxes in NIB files. I stopped
using the date formatter and take the string value and convert it to
NSTimestamp in code. This also means that I have to manually update
the UI.
On Mar 24, 2005, at 3:04 PM, Robert Marsa wrote:
Hi. I've been having problems with getting NullPointerException's in
my direct to java client application. In trying to track them down, I
created a very simple test application which exhibits the same
behavior leading me to wonder if there is a bug in WebObjects.
Here is the setup:
I have two objects, Name and Number. Name has a primary key of nameID
and a foreign key of numberID. Neither of these is a server or client
property. Name has a String attribute "name" which is both a server
and client property.
Number has a primary key of numberID which is neither a server nor
client property and the Integer attribute "value" which is both a
server and client property.
Name has a one-to-many relationship with Number which is named
'number' and links Name.numberID with Number.numberID. This
relationship is visible on the client. It is set to be mandatory with
a "no action" delete rule. All pretty standard.
I then create and build a standard direct-to-java client application.
In the assistant I set Number to be an enumeration entity. I can then
run the application and add Numbers to my hearts content. But if I
create a new Name and save it, I get a NullPointerException on the
client although everything works fine on the server. The stack trace
is:
apple.awt.EventQueueExceptionHandler Caught Throwable :
java.lang.NullPointerException
java.lang.NullPointerException
at
com.webobjects.eodistribution.client.EODistributedObjectStore._fireDefe
rredFault(EODistributedObjectStore.java:1159)
at
com.webobjects.eodistribution.client.EODistributionDeferredFaultHandler
.createFaultForDeferredFault(EODistributionDeferredFaultHandler.java:
20)
at
com.webobjects.eocontrol.EOCustomObject.willReadRelationship(EOCustomOb
ject.java:1302)
at
com.webobjects.eocontrol._EOMutableKnownKeyDictionary$Initializer$_Lazy
GenericRecordBinding.valueInObject(_EOMutableKnownKeyDictionary.java:
560)
at
com.webobjects.eocontrol.EOCustomObject.valueForKey(EOCustomObject.java
:1559)
at
com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyVal
ueCoding.java:498)
at
com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementati
on.valueForKeyPath(NSKeyValueCodingAdditions.java:212)
at
com.webobjects.eocontrol.EOCustomObject.valueForKeyPath(EOCustomObject.
java:1675)
at
com.webobjects.foundation.NSKeyValueCodingAdditions$Utility.valueForKey
Path(NSKeyValueCodingAdditions.java:149)
at
com.webobjects.eointerface.EODisplayGroup.valueForObject(EODisplayGroup
.java:3371)
at
com.webobjects.eointerface.EODisplayGroup.selectedObjectValueForKey(EOD
isplayGroup.java:3397)
at
com.webobjects.eointerface.EOAssociation.valueForAspect(EOAssociation.j
ava:748)
at
com.webobjects.eointerface.EOValueSelectionAssociation.subjectChanged(E
OValueSelectionAssociation.java:336)
at
com.webobjects.eocontrol.EODelayedObserverQueue.notifyObserversUpToPrio
rity(EODelayedObserverQueue.java:235)
at
com.webobjects.eocontrol.EODelayedObserverQueue._processEndOfEventObser
vers(EODelayedObserverQueue.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
va:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
rImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
com.webobjects.foundation.NSSelector.invoke(NSSelector.java:354)
at
com.webobjects.foundation.NSSelector._safeInvokeSelector(NSSelector.jav
a:108)
at
com.webobjects.foundation.NSDelayedCallbackCenter$NSLightInvocation.inv
oke(NSDelayedCallbackCenter.java:242)
at
com.webobjects.foundation.NSDelayedCallbackCenter._eventEnded(NSDelayed
CallbackCenter.java:208)
at
com.webobjects.eointerface.swing.EOSwingUtilities$1.run(EOSwingUtilitie
s.java:162)
at
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThre
ad.java:234)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread
.java:184)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:178)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:170)
at
java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
If I quit and rerun the client, the Name shows up fine with the
correct Number linked to it. But upon creation, it somehow sends the
correct object to the server which gets saved, but when the user
interface redraws, the relationship is returning null.
What is going on and how can I fix it?
Thanks,
Robert
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
email@hidden
This email sent to email@hidden
--
Robert Walker
www.robertwalker1.com
"There are 10 kinds of people in the world. Those who think binary and
those who don't."
_______________________________________________
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