Hi Cameron

Here's what happens in your scenario: The UIBorderLayoutPane receives a call to 
its setBorder() method. The argument that is passed in is a 
UILazyComponent$BasicLazyComponent - not a border as expected.

The only meaningful explanation for this behaviour is the following: Your 
application stores borders (or at least one border) in a static variable (or in 
any static scope). As all border classes inherit from ULCProxy, they should NOT 
be shared between sessions. See "Avoid Sharing Proxies Between Sessions" in 
ULCEssentialsGuide, 11 Best Practices.

If you do share proxies, the second session will reuse the server-side proxy of 
the first session. As proxies are identified using a number that is only unique 
in a single session, the id will probably point to a completely different proxy 
in the UI of the second client.

By the way: The same problem could have occurred with ULC 6.0.4. Apparently, 
the proxies always were created in the very same order in your application and 
the ids matched, so everything worked fine. The problem seems to be more likely 
to happen with ULC 6.1. A similar problem has also been reported by another 
customer.

So: look for static references of borders and eliminate them. I hope this 
helps. 

Cheerio
Rolf

PS: One additional comment: If a problem always appears when starting the 
second client, most likely static references will be the issue.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of [EMAIL PROTECTED]
Sent: Donnerstag, 29. Juni 2006 18:04
To: [email protected]
Subject: [ULC-developer] Application throws a IllegalStateException when I 
attempt to run the application for the second time.



I have just upgraded from ULC 6.0.4 to 6.1 and  I'm getting a strange error the 
second time I run my application.  I think it has something to do with the many 
extensions I have in my application, but I'm hesitant to rewrite them using the 
new extension API given the amount of time this will take.  I would appreciate 
any help I can get on this. 

com.ulcjava.base.shared.internal.IllegalStateException: no method found for 
method name 'setBorder' and arguments 
'[com.ulcjava.base.client.UILazyComponent$BasicLazyComponent[,0,0,0x0,invalid,layout=java.awt.FlowLayout,alignmentX=null,alignmentY=null,border=,flags=8,maximumSize=,minimumSize=,preferredSize=]]'
 (argument types: '[class 
com.ulcjava.base.client.UILazyComponent$BasicLazyComponent]') on class 
'com.ulcjava.base.client.UIBorderLayoutPane', proxy OID is 1017 
        at 
com.ulcjava.base.shared.internal.ReflectionUtilities.createExceptionForMethodNotFound(ReflectionUtilities.java:15)
 
        at com.ulcjava.base.client.UIProxy.a(UIProxy.java:10) 
        at com.ulcjava.base.client.UIProxy.b(UIProxy.java:161) 
        at com.ulcjava.base.client.UIProxy.a(UIProxy.java:68) 
        at com.ulcjava.base.client.UIProxy.restoreState(UIProxy.java:199) 
        at com.ulcjava.base.client.UIProxy.init(UIProxy.java:143) 
        at com.ulcjava.base.client.UISession.newInstance(UISession.java:232) 
        at com.ulcjava.base.client.UISession.find(UISession.java:291) 
        at com.ulcjava.base.client.UISession.getManaged(UISession.java:92) 
        at com.ulcjava.base.client.UIProxy.c(UIProxy.java:147) 
        at com.ulcjava.base.client.UIProxy.c(UIProxy.java:184) 
        at com.ulcjava.base.client.UIProxy.b(UIProxy.java:115) 
        at com.ulcjava.base.client.UIProxy.a(UIProxy.java:68) 
        at com.ulcjava.base.client.UIProxy.restoreState(UIProxy.java:199) 
        at com.ulcjava.base.client.UIProxy.init(UIProxy.java:143) 
        at com.ulcjava.base.client.UISession.newInstance(UISession.java:232) 
        at com.ulcjava.base.client.UISession.find(UISession.java:291) 
        at com.ulcjava.base.client.UISession.getManaged(UISession.java:92) 
        at com.ulcjava.base.client.UIProxy.c(UIProxy.java:147) 
        at com.ulcjava.base.client.UIProxy.c(UIProxy.java:184) 
        at com.ulcjava.base.client.UIProxy.b(UIProxy.java:115) 
        at com.ulcjava.base.client.UIProxy.a(UIProxy.java:68) 
        at com.ulcjava.base.client.UIProxy.restoreState(UIProxy.java:199) 
        at com.ulcjava.base.client.UIProxy.init(UIProxy.java:143) 
        at com.ulcjava.base.client.UISession.newInstance(UISession.java:232) 
        at com.ulcjava.base.client.UISession.find(UISession.java:291) 
        at com.ulcjava.base.client.UISession.getManaged(UISession.java:92) 
        at com.ulcjava.base.client.UIProxy.c(UIProxy.java:147) 
        at com.ulcjava.base.client.UIProxy.c(UIProxy.java:184) 
        at com.ulcjava.base.client.UIProxy.b(UIProxy.java:115) 
        at com.ulcjava.base.client.UIProxy.a(UIProxy.java:68) 
        at com.ulcjava.base.client.UIProxy.restoreState(UIProxy.java:199) 
        at com.ulcjava.base.client.UIProxy.init(UIProxy.java:143) 
        at com.ulcjava.base.client.UISession.newInstance(UISession.java:232) 
        at com.ulcjava.base.client.UISession.find(UISession.java:291) 
        at com.ulcjava.base.client.UISession.getManaged(UISession.java:92) 
        at com.ulcjava.base.client.UIProxy.c(UIProxy.java:147) 
        at com.ulcjava.base.client.UIProxy.c(UIProxy.java:184) 
        at com.ulcjava.base.client.UIProxy.b(UIProxy.java:115) 
        at com.ulcjava.base.client.UIProxy.a(UIProxy.java:68) 
        at com.ulcjava.base.client.UIProxy.restoreState(UIProxy.java:199) 
        at com.ulcjava.base.client.UIProxy.init(UIProxy.java:143) 
        at com.ulcjava.base.client.UISession.newInstance(UISession.java:232) 
        at com.ulcjava.base.client.UISession.find(UISession.java:291) 
        at com.ulcjava.base.client.UISession.getManaged(UISession.java:92) 
        at com.ulcjava.base.client.UIProxy.c(UIProxy.java:147) 
        at com.ulcjava.base.client.UIProxy.c(UIProxy.java:184) 
        at com.ulcjava.base.client.UIProxy.b(UIProxy.java:115) 
        at com.ulcjava.base.client.UIProxy.a(UIProxy.java:68) 
        at com.ulcjava.base.client.UIProxy.restoreState(UIProxy.java:199) 
        at com.ulcjava.base.client.UIProxy.init(UIProxy.java:143) 
        at com.ulcjava.base.client.UISession.newInstance(UISession.java:232) 
        at com.ulcjava.base.client.UISession.handleRequest(UISession.java:206) 
        at com.ulcjava.base.client.UISession.b(UISession.java:243) 
        at com.ulcjava.base.client.UISession.access$1600(UISession.java:310) 
        at com.ulcjava.base.client.UISession$1.run(UISession$1.java:2) 
        at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
        at java.awt.EventQueue.dispatchEvent(Unknown Source) 
        at 
com.ulcjava.base.client.FilteringEventQueue.dispatchEvent(FilteringEventQueue.java:33)
 
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown 
Source) 
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
        at java.awt.EventDispatchThread.run(Unknown Source) 

Thanks,
    Cameron

Reply via email to