Skip to main content

WindowBuilder woes with SwingX 1.6.3

24 replies [Last post]
mikofclassx
Offline
Joined: 2003-07-02
Points: 0

I'm experiencing a problem with WindowBuilder for Eclipse.

It is no longer able to create/recreate a visual class that extends the JXTable. It fails with a NoClassDefFoundError. Stepping back to SwingX 1.6.2 fixes the problem.

I'm aware that this description is far from being a good bug report, but I hope that someone of you is capable to replicate, check and see what happens, by i.e. recalling in mind what has been changed in the JXTable that may hurt WindowBuilder in that way.

I'm also aware that this bug may not be related to SwingX itself but it's a bug of WindowBuilder. That's why I also posted a stack trace to them.

Sadly this is a show-stopper in our adoption of SwingX 1.6.3 and, of course, we would like to see a fix. Kind-of Christmas gift for us :)

Cheers,

Mik

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
kschaefe
Offline
Joined: 2006-06-08
Points: 0

Mik,

I just wanted to let you know that I finally had some time to check this on NetBeans.  While I did experience the issues you describe by reparsing in Eclipse, I did not encounter any issues with NetBeans.  We have had plenty of issues with NetBeans in the beginning, but since some of there members were SwingX contributors, we got a lot of attention and fixes.  So, I'd like to think this is not a regression.  I am unable to keep up to date on the Eclipse bug as I don't seem to have a way to do that.  So, please report back here any information.  I'd really like to make sure that we don't loose users with this version update, but at the same time, I don't think the issue is ours.

Karl

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

Karl,

many thanks for your feedback. Here we're all early adopters of the Eclipse platform. We switched from VE to WindowBuilder as the VE itself was dropped and adbandoned (http://www.eclipse.org/archived/).
The good news is that WindowBuilder is nicer and smarter than VE. The bad news is this issue with SwingX 1.6.3. Frankly I'm quite convinced that it's not a problem of SwingX itself. Even if it's a fact that swingx 1.6.2 is ok with WindowBuilder. Now, all this is a big showstopper for us as we _need_ swingx and we would like to use the very latest version.

Now what to do? No one at bugs.eclipse.org put an eye to the issue and this is a big pity as Eclipse should have a good swing gui editor. I'm a bit confused at the moment..

Mik

kschaefe
Offline
Joined: 2006-06-08
Points: 0

Mik,

One change that may be exacerbating the WindowBuilder problem is the use of the ServiceLoader API to handle the loading of the UI addon stuff.  We started using ServiceLoader for obtaining the addon stuff to help separate the code to prevent it from being too interconnected.

If the root cause of the WindowBuilder bugs is a ClassLoader issue, as I am assuming at this point (given both the history with NetBeans and the various stack traces here), then the addons are being created from the wrong ClassLoader because of the ServiceLoader.

I have just looked and the ServiceLoader API has a method for passing in a ClassLoader.  I am going to make some changes to our code to use that method.  Once I get that new code on maven.java.net, I'll let you know.  Please test it when I do so, perhaps this is the solution we're looking for.

Karl

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

Karl,

I had no experience with the ServiceLoader api. I see that there is a load(service, classloader) that uses the given classloader, or the system class loader or the bootstrap classloader . This is a bit different from the load(service) that uses the context class loader. Let's hope this is the reason.

I'm ready to test your stuff as soon as it's ready!

Mik

kschaefe
Offline
Joined: 2006-06-08
Points: 0

Mik,

Had a small issue with the change, but I got all of the unit tests passing now.  The new code is up at maven.java.net.  Let me know if that solves or doesn't solve the problem.

Karl

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

Karl,

Many thanks, I'm getting the jars now.

Mik

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

BREAKING NEWS: It works!

So great indeed. Many thanks.

Mik

kschaefe
Offline
Joined: 2006-06-08
Points: 0

Awesome! That's great news.

This has been bugging me for some time.  I'm glad that we've waited on the final release long enough for me to puzzle this one out.

I would continue to update the Eclipse bug, if I were you.  NetBeans did not encounter the problem and Eclipse did.  So they are doing something different: perhaps Eclipse is correct, perhaps not. 

Doing some final checks on the Maven builds; hope to go final soon.

Karl

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

Karl,
thanks for your invaluable work.

In order to keep with the Eclipse bug I would need more info about the fix-workaround you implemented so that I could submit some code for a better bug evaluation.

Cheers,
Mik

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

Karl,

I posted some comments on the Eclipse Bug (https://bugs.eclipse.org/bugs/show_bug.cgi?id=368183) and apparently they are starting to pay some attention to the bug. Maybe they require some more details on the fix. Here you may be more accurate than me in describing the solution.

Cheers,
Mik

kschaefe
Offline
Joined: 2006-06-08
Points: 0

Which jars are you using?  The individuals or the all?  Are you making sure that you include the beaninfo jar?

Karl

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

Hi, swingx-all-1.6.3-20111202.180135-1.jar

Apparently I did not install the beaninfo jars. Are they required from WindowBuilder ?

Took them here: https://maven.java.net/index.html#nexus-search;quick~swingx

Mik

kschaefe
Offline
Joined: 2006-06-08
Points: 0

Yeah, the beaninfo jar is required only for building with a visual tool.  You'll need that to allow the designer (WindowBuilder) to know how it can manipulate the components.  Add that and let me know if you get things working.

Karl

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

Yes, I added the swingx and the beaninfo to the build path and the results are the same.

I tried with a JXSearchField instead of a JXTable. Same results when re-parsing the visual class (JPanel containing a JXSearchField).
Here's the stack trace:

--

new JXSearchField()

WindowBuilder internal error

WindowBuilder encountered unexpected internal error. Please contact support.

java.lang.NoClassDefFoundError: Could not initialize class org.jdesktop.swingx.JXSearchField

Show stack trace.
Hide stack trace.

Stack trace:
java.lang.NoClassDefFoundError: Could not initialize class org.jdesktop.swingx.JXSearchField
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.instantiations.designer.swing.model.component.Swing_InvocationEvaluatorInterceptor.evaluateSwing(Swing_InvocationEvaluatorInterceptor.java:61)
at com.instantiations.designer.swing.model.component.Swing_InvocationEvaluatorInterceptor.evaluate(Swing_InvocationEvaluatorInterceptor.java:48)
at com.instantiations.designer.core.eval.evaluators.InvocationEvaluator.tryInterceptors(InvocationEvaluator.java:389)
at com.instantiations.designer.core.eval.evaluators.InvocationEvaluator.evaluate(InvocationEvaluator.java:241)
at com.instantiations.designer.core.eval.evaluators.InvocationEvaluator.evaluate(InvocationEvaluator.java:74)
at com.instantiations.designer.core.eval.ASTEvaluationEngine.evaluate0(ASTEvaluationEngine.java:95)
at com.instantiations.designer.core.eval.ASTEvaluationEngine.evaluate(ASTEvaluationEngine.java:41)
at com.instantiations.designer.core.model.JavaInfoEvaluationHelper.evaluateExpression(JavaInfoEvaluationHelper.java:587)
at com.instantiations.designer.core.model.JavaInfoEvaluationHelper.evaluate(JavaInfoEvaluationHelper.java:462)
at com.instantiations.designer.core.model.JavaInfo$7.postVisit(JavaInfo.java:1031)
at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.instantiations.designer.core.eval.ExecutionFlowUtils$1.intercept(ExecutionFlowUtils.java:371)
at org.eclipse.jdt.core.dom.ASTVisitor$$EnhancerByCGLIB$$b7b6b7df.postVisit(<generated>)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2483)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2528)
at org.eclipse.jdt.core.dom.Assignment.accept0(Assignment.java:312)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2528)
at org.eclipse.jdt.core.dom.ExpressionStatement.accept0(ExpressionStatement.java:144)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:327)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:310)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:321)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:310)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visit(ExecutionFlowUtils.java:225)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.access$1(ExecutionFlowUtils.java:213)
at com.instantiations.designer.core.eval.ExecutionFlowUtils$1.endVisit(ExecutionFlowUtils.java:411)
at com.instantiations.designer.core.eval.ExecutionFlowUtils$1.intercept(ExecutionFlowUtils.java:363)
at org.eclipse.jdt.core.dom.ASTVisitor$$EnhancerByCGLIB$$b7b6b7df.endVisit(<generated>)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:247)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2551)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:245)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2528)
at org.eclipse.jdt.core.dom.ExpressionStatement.accept0(ExpressionStatement.java:144)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:327)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:310)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visit(ExecutionFlowUtils.java:225)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.access$1(ExecutionFlowUtils.java:213)
at com.instantiations.designer.core.eval.ExecutionFlowUtils$1.endVisit(ExecutionFlowUtils.java:411)
at com.instantiations.designer.core.eval.ExecutionFlowUtils$1.intercept(ExecutionFlowUtils.java:363)
at org.eclipse.jdt.core.dom.ASTVisitor$$EnhancerByCGLIB$$b7b6b7df.endVisit(<generated>)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:247)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2528)
at org.eclipse.jdt.core.dom.ExpressionStatement.accept0(ExpressionStatement.java:144)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:327)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:310)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visit(ExecutionFlowUtils.java:225)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visit(ExecutionFlowUtils.java:207)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visit(ExecutionFlowUtils.java:172)
at com.instantiations.designer.core.model.JavaInfo.refresh_create(JavaInfo.java:1084)
at com.instantiations.designer.core.model.ObjectInfo.refreshCreate0(ObjectInfo.java:481)
at com.instantiations.designer.core.model.ObjectInfo.access$0(ObjectInfo.java:477)
at com.instantiations.designer.core.model.ObjectInfo$5$1.run(ObjectInfo.java:437)
at com.instantiations.designer.core.utils.execution.ExecutionUtils.runDesignTime(ExecutionUtils.java:121)
at com.instantiations.designer.core.model.ObjectInfo$5.run(ObjectInfo.java:435)
at com.instantiations.designer.swing.utils.SwingUtils$1.run(SwingUtils.java:62)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Full context stack trace:
java.lang.NoClassDefFoundError: Could not initialize class org.jdesktop.swingx.JXSearchField
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.instantiations.designer.swing.model.component.Swing_InvocationEvaluatorInterceptor.evaluateSwing(Swing_InvocationEvaluatorInterceptor.java:61)
at com.instantiations.designer.swing.model.component.Swing_InvocationEvaluatorInterceptor.evaluate(Swing_InvocationEvaluatorInterceptor.java:48)
at com.instantiations.designer.core.eval.evaluators.InvocationEvaluator.tryInterceptors(InvocationEvaluator.java:389)
at com.instantiations.designer.core.eval.evaluators.InvocationEvaluator.evaluate(InvocationEvaluator.java:241)
at com.instantiations.designer.core.eval.evaluators.InvocationEvaluator.evaluate(InvocationEvaluator.java:74)
at com.instantiations.designer.core.eval.ASTEvaluationEngine.evaluate0(ASTEvaluationEngine.java:95)
at com.instantiations.designer.core.eval.ASTEvaluationEngine.evaluate(ASTEvaluationEngine.java:41)
at com.instantiations.designer.core.model.JavaInfoEvaluationHelper.evaluateExpression(JavaInfoEvaluationHelper.java:587)
at com.instantiations.designer.core.model.JavaInfoEvaluationHelper.evaluate(JavaInfoEvaluationHelper.java:462)
at com.instantiations.designer.core.model.JavaInfo$7.postVisit(JavaInfo.java:1031)
at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.instantiations.designer.core.eval.ExecutionFlowUtils$1.intercept(ExecutionFlowUtils.java:371)
at org.eclipse.jdt.core.dom.ASTVisitor$$EnhancerByCGLIB$$b7b6b7df.postVisit(<generated>)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2483)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2528)
at org.eclipse.jdt.core.dom.Assignment.accept0(Assignment.java:312)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2528)
at org.eclipse.jdt.core.dom.ExpressionStatement.accept0(ExpressionStatement.java:144)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:327)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:310)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:321)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:310)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visit(ExecutionFlowUtils.java:225)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.access$1(ExecutionFlowUtils.java:213)
at com.instantiations.designer.core.eval.ExecutionFlowUtils$1.endVisit(ExecutionFlowUtils.java:411)
at com.instantiations.designer.core.eval.ExecutionFlowUtils$1.intercept(ExecutionFlowUtils.java:363)
at org.eclipse.jdt.core.dom.ASTVisitor$$EnhancerByCGLIB$$b7b6b7df.endVisit(<generated>)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:247)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2551)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:245)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2528)
at org.eclipse.jdt.core.dom.ExpressionStatement.accept0(ExpressionStatement.java:144)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:327)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:310)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visit(ExecutionFlowUtils.java:225)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.access$1(ExecutionFlowUtils.java:213)
at com.instantiations.designer.core.eval.ExecutionFlowUtils$1.endVisit(ExecutionFlowUtils.java:411)
at com.instantiations.designer.core.eval.ExecutionFlowUtils$1.intercept(ExecutionFlowUtils.java:363)
at org.eclipse.jdt.core.dom.ASTVisitor$$EnhancerByCGLIB$$b7b6b7df.endVisit(<generated>)
at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:247)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2528)
at org.eclipse.jdt.core.dom.ExpressionStatement.accept0(ExpressionStatement.java:144)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2480)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:327)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement0(ExecutionFlowUtils.java:310)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visitStatement(ExecutionFlowUtils.java:290)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visit(ExecutionFlowUtils.java:225)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visit(ExecutionFlowUtils.java:207)
at com.instantiations.designer.core.eval.ExecutionFlowUtils.visit(ExecutionFlowUtils.java:172)
at com.instantiations.designer.core.model.JavaInfo.refresh_create(JavaInfo.java:1084)
at com.instantiations.designer.core.model.ObjectInfo.refreshCreate0(ObjectInfo.java:481)
at com.instantiations.designer.core.model.ObjectInfo.access$0(ObjectInfo.java:477)
at com.instantiations.designer.core.model.ObjectInfo$5$1.run(ObjectInfo.java:437)
at com.instantiations.designer.core.utils.execution.ExecutionUtils.runDesignTime(ExecutionUtils.java:121)
at com.instantiations.designer.core.model.ObjectInfo$5.run(ObjectInfo.java:435)
at com.instantiations.designer.swing.utils.SwingUtils$1.run(SwingUtils.java:62)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

kschaefe
Offline
Joined: 2006-06-08
Points: 0

I'll try to load up WindowBuilder.  What version are you using?

Karl

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

WindowBuilder 8.1.1 R36x201012161228 for eclipse 3.6

Mik

kschaefe
Offline
Joined: 2006-06-08
Points: 0

That's not the version I find:
http://code.google.com/javadevtools/download-wbpro.html

I am beginning to test with what I have.  If you can point me to your exact version that would be great.

Karl

kschaefe
Offline
Joined: 2006-06-08
Points: 0

So, I've tried it with my version and no problems.  I manually downloaded the jars from the snapshot repo into my project (this is because work blocks snapshots).  I added both swingx-all and swingx-beaninfo to the project build path.  I imported the swingx-all jar into the palette.  I have no issues dragging components into the design space.  I can edit them with the property sheets.  I am having trouble using the custom editors in the beaninfo, but I think that's because I don't know how to configure Window Builder.  I am feeling like this is not a SwingX bug.

Let me know soon, I'd like to get the release out.

Karl

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

Hi,

this is my test case:

Create a class that extends the JXTable():

--8<------

import org.jdesktop.swingx.JXTable;

public class TestJXTable extends JXTable
{
private static final long serialVersionUID = -6281412545011724913L;

public TestJXTable()
{
super();
}
}

--8<------

Open it with the WindowBuilder (1.1.0.r37x201109091012) and you got this exception.

Exception during 'super' constructor evaluation

An exception happened during evaluation of constructor JXTable() using arguments {}.

java.lang.ClassCastException: Cannot cast org.jdesktop.swingx.plaf.linux.LinuxLookAndFeelAddons to org.jdesktop.swingx.plaf.LookAndFeelAddons
at java.lang.Class.cast(Unknown Source)
at java.util.ServiceLoader$LazyIterator.next(Unknown Source)
at java.util.ServiceLoader$1.next(Unknown Source)
at org.jdesktop.swingx.plaf.LookAndFeelAddons.getSystemAddonClassName(LookAndFeelAddons.java:267)
at org.jdesktop.swingx.plaf.LookAndFeelAddons.getBestMatchAddonClassName(LookAndFeelAddons.java:223)
at org.jdesktop.swingx.plaf.LookAndFeelAddons.&lt;clinit&gt;(LookAndFeelAddons.java:87)
at org.jdesktop.swingx.JXTable.&lt;clinit&gt;(JXTable.java:398)

I hope this helps.

Mik

kschaefe
Offline
Joined: 2006-06-08
Points: 0

The ClassCastException for something that should not cause that exception is a signifier of a ClassLoader issue.  WindowBuilder grew out of NetBeans Mattisse, which has had many ClassLoader issues.  These would not be issues with SwingX.  The best way for me to confirm that we didn't introduce something, but exposed a Window Builder bug is to test on NetBeans.  I'll attempt to download and install NetBeans GUI builder and verify my assumption.

Meanwhile, I suggest that you raise an issue with the Window Builder folks because that ClassCastException should never happen.  You may CC me on these issues; I would be happy to provide what assistance I can to the Window Builder team in any way that I can.  However, if I my assumption proves correct, the best resource for these folks would be the NetBeans Mattisse folks.

Karl

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

Manyh thanks Karl,

at the same time, this issue does not happen with swingx 1.6.2.2, so maybe there's something new that's hurting WindowBuilder in some ways ?

Mik

p.s. the WindowBuilder bugzilla report: https://bugs.eclipse.org/bugs/show_bug.cgi?id=368183

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

I forgot to tell you that you must "reparse" the gui in the WindowBuilder window.

I recorded a little video about the issue:

www.classx.it/public/tmp/swingx163.avi (cinepack codec)

Mik

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

Karl, did you try to replicate the problem ?

mikofclassx
Offline
Joined: 2003-07-02
Points: 0

As a quick hint, is this related to http://java.net/jira/browse/SWINGX-349 ?

Mik