Top-Q / jsystem

JSystem is a professional open-source framework for writing and managing automated system tests.
http://www.jsystem.org/
Apache License 2.0
45 stars 48 forks source link

Unable to open type editor for user_defined type - crashes with LinkageError #338

Closed MarcinGil closed 6 years ago

MarcinGil commented 6 years ago

Hi! Using latest JSystem 6.1.10 I am unable to open the editor for any user_defined type. It crashes with error:

Exception in thread "AWT-EventQueue-0" java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.jsystemtest.BeanTreeDialog.isEditable(Lorg/w3c/dom/Document;)Z" the class loader (instance of jsystem/runner/loader/ExtendsTestCaseClassLoader) of the current class, org/jsystemtest/BeanTreeDialog, and the class loader (instance of java/net/URLClassLoader) for interface jsystem/framework/sut/SutEditor have different Class objects for the type org/w3c/dom/Document used in the signature
        at jsystem.extensions.paramproviders.BeanTreeParameterProvider.showUI(BeanTreeParameterProvider.java:48)
        at jsystem.treeui.params.ParameterTableUserDefine.actionPerformed(ParameterTableUserDefine.java:79)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
        at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
        at java.awt.Component.processMouseEvent(Component.java:6539)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
        at java.awt.Component.processEvent(Component.java:6304)
        at java.awt.Container.processEvent(Container.java:2239)
        at java.awt.Component.dispatchEventImpl(Component.java:4889)
        at java.awt.Container.dispatchEventImpl(Container.java:2297)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
        at java.awt.Container.dispatchEventImpl(Container.java:2283)
        at java.awt.Window.dispatchEventImpl(Window.java:2746)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
        at java.awt.EventQueue$4.run(EventQueue.java:733)
        at java.awt.EventQueue$4.run(EventQueue.java:731)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

OS: Ubuntu 18.04.01 LTS Java: 1.8.0_181 JSystem: 6.1.10

itaiag commented 6 years ago

Hi.

I tried to reproduce the problem with the following environments:

Ubuntu 18.04.01 (64bit) / Kubuntu 18.04.01 Oracle Java 1.8.0_181 / Oracle Java 1.8.0_171 / Open JRE 1.8.0_192-ea JSystem 6.1.10

And the user_defined, SUT Planner and any other component that is using the org/w3c/dom/Document class seems to work fine.

I know it seems to be the old and hated case of the "But it works on my machine..." scenario, but maybe there is something wrong with the configuration of the specific machine you are using? Can you try to do the same on another machine?

MarcinGil commented 6 years ago

It was necessary to exclude org/w3c/dom/Document from class loading. That solved issue. Thanks!