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
