Home » Archived » Jubula » OpenJDK 11 support
OpenJDK 11 support [message #1805603] |
Thu, 18 April 2019 09:57  |
Eclipse User |
|
|
|
Good afternoon,
I would like to ask, whether Jubula is going to support OpenJDK 11, since nowadays it does not (according to FAQS)?
We use Jubula for automated testing of our JavaFx application quite extensively and since we have recently migrated from java8 to OpenJDK 11 there is currently no easy way of running the AUT's anymore. The following is the callstack of previously working javaFx app during autrun call but build for OpenJdk 11 from command line:
AUTs syserr: Exception in thread "Start AUT Server" java.lang.ExceptionInInitializerError
AUTs syserr: at org.eclipse.jubula.rc.javafx.listener.ComponentHandler.<init>(ComponentHandler.java:94)
AUTs syserr: at org.eclipse.jubula.rc.javafx.JavaFXAUTServer.addToolkitEventListeners(JavaFXAUTServer.java:101)
AUTs syserr: at org.eclipse.jubula.rc.common.AUTServer.addToolKitEventListenerToAUT(AUTServer.java:832)
AUTs syserr: at org.eclipse.jubula.rc.common.AUTServer.startAUT(AUTServer.java:403)
AUTs syserr: at org.eclipse.jubula.rc.common.commands.AUTStartCommand.execute(AUTStartCommand.java:57)
AUTs syserr: at org.eclipse.jubula.rc.common.AUTServer$3.run(AUTServer.java:471)
AUTs syserr: Caused by: java.lang.NullPointerException
AUTs syserr: at com.sun.javafx.tk.quantum.QuantumToolkit.resumeTimer(QuantumToolkit.java:512)
AUTs syserr: at com.sun.javafx.tk.quantum.QuantumToolkit$PulseTask.set(QuantumToolkit.java:203)
AUTs syserr: at com.sun.javafx.tk.quantum.QuantumToolkit.setAnimationRunnable(QuantumToolkit.java:883)
AUTs syserr: at com.sun.javafx.tk.quantum.MasterTimer.postUpdateAnimationRunnable(MasterTimer.java:105)
AUTs syserr: at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.updateAnimationRunnable(AbstractMasterTimer.java:324)
AUTs syserr: at com.sun.scenario.animation.AbstractMasterTimer.addPulseReceiver(AbstractMasterTimer.java:176)
AUTs syserr: at javafx.animation.Animation.addPulseReceiver(Animation.java:148)
AUTs syserr: at javafx.animation.Animation.startReceiver(Animation.java:154)
AUTs syserr: at javafx.animation.Animation.play(Animation.java:913)
AUTs syserr: at org.eclipse.jubula.rc.javafx.components.CurrentStages.<clinit>(CurrentStages.java:102)
AUTs syserr: ... 6 more
AUTs syserr: Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError: <init>
AUTs syserr: at com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
AUTs syserr: at com.sun.glass.ui.Screen.initScreens(Screen.java:412)
AUTs syserr: at com.sun.glass.ui.Application.lambda$run$1(Application.java:152)
AUTs syserr: at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
AUTs syserr: at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
AUTs syserr: at java.base/java.lang.Thread.run(Thread.java:834)
AUTs syserr: Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError: <init>
AUTs syserr: at com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
AUTs syserr: at com.sun.glass.ui.Screen.initScreens(Screen.java:412)
AUTs syserr: at com.sun.glass.ui.Application.lambda$run$1(Application.java:152)
AUTs syserr: at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
AUTs syserr: at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
AUTs syserr: at java.base/java.lang.Thread.run(Thread.java:834)
AUTs syserr: Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
AUTs syserr: at com.sun.prism.d3d.D3DPipeline.getAdapterOrdinal(D3DPipeline.java:205)
AUTs syserr: at com.sun.javafx.tk.quantum.QuantumToolkit.assignScreensAdapters(QuantumToolkit.java:738)
AUTs syserr: at com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(QuantumToolkit.java:334)
AUTs syserr: at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$startup$10(QuantumToolkit.java:279)
AUTs syserr: at com.sun.glass.ui.Application.lambda$run$1(Application.java:153)
AUTs syserr: at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
AUTs syserr: at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
AUTs syserr: at java.base/java.lang.Thread.run(Thread.java:834)
Is there perhaps any temporary workaround for this kind of issue?
Thanks in advance for your kind replies.
Best regards,
Jakub
|
|
| | | | | |
Re: OpenJDK 11 support [message #1805869 is a reply to message #1805788] |
Fri, 26 April 2019 02:56   |
Eclipse User |
|
|
|
Hello again,
sorry for the delayed anwer, I have been rather busy lately. I have tried the same process and checked the jubula log folder for more information. Perhaps this will be of some use.
1. Running my application as AUT from Jubula (8.7.1.046, with default jubula.ini settings, so the used jre is the one in my jubula installation path) manages to start the AUT. The application uses mostly standard javafx components and some customized ones, but neither of them are recognized during the object mapping. No highlighting etc. During this two errors are logged to client.log:
2019-04-26 08:19:30.364 [Connection.ReaderThread:Socket[addr=/127.0.0.1,port=60228,localport=60001]] ERROR o.e.j.autagent.OsgiAUTStartHelper - No bundle found for ID 'com.thoughtworks.xstream'.
2019-04-26 08:19:30.364 [Connection.ReaderThread:Socket[addr=/127.0.0.1,port=60228,localport=60001]] ERROR o.e.j.autagent.OsgiAUTStartHelper - No bundle found for ID 'org.xmlpull'.
and to rc_javafx.log:
2019-04-26 08:18:27.936 [Connection.ReaderThread:Socket[addr=JFOLTASW10.indra.es/192.168.226.60,port=60187,localport=60237]] ERROR o.e.j.c.internal.Communicator - caught exception from 'org.eclipse.jubula.rc.common.commands.ChangeAUTModeCommand.execute()'
java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.jubula.rc.javafx.components.CurrentStages
at org.eclipse.jubula.rc.javafx.JavaFXAUTServer.removeToolkitEventListener(JavaFXAUTServer.java:121) ~[org.eclipse.jubula.rc.javafx_7.0.2.201902270829.jar:na]
at org.eclipse.jubula.rc.javafx.JavaFXAUTServer.removeToolkitEventListener(JavaFXAUTServer.java:103) ~[org.eclipse.jubula.rc.javafx_7.0.2.201902270829.jar:na]
at org.eclipse.jubula.rc.common.AUTServer.setMode(AUTServer.java:955) ~[org.eclipse.jubula.rc.common_7.0.2.201902270829.jar:na]
at org.eclipse.jubula.rc.common.commands.ChangeAUTModeCommand.execute(ChangeAUTModeCommand.java:103) ~[org.eclipse.jubula.rc.common_7.0.2.201902270829.jar:na]
at org.eclipse.jubula.communication.internal.Communicator$ConnectionListener.received(Communicator.java:921) ~[org.eclipse.jubula.communication_4.0.0.201902270829.jar:na]
at org.eclipse.jubula.communication.internal.connection.Connection.fireMessageReceived(Connection.java:402) ~[org.eclipse.jubula.communication_4.0.0.201902270829.jar:na]
at org.eclipse.jubula.communication.internal.connection.Connection.access$2(Connection.java:391) ~[org.eclipse.jubula.communication_4.0.0.201902270829.jar:na]
at org.eclipse.jubula.communication.internal.connection.Connection$ReaderThread.run(Connection.java:454) ~[org.eclipse.jubula.communication_4.0.0.201902270829.jar:na]
2019-04-26 08:20:25.316 [Connection.ReaderThread:Socket[addr=JFOLTASW10.indra.es/192.168.226.60,port=60187,localport=60259]] ERROR o.e.j.c.internal.Communicator - caught exception from 'org.eclipse.jubula.rc.common.commands.ChangeAUTModeCommand.execute()'
java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.jubula.rc.javafx.components.CurrentStages
at org.eclipse.jubula.rc.javafx.JavaFXAUTServer.removeToolkitEventListener(JavaFXAUTServer.java:121) ~[org.eclipse.jubula.rc.javafx_7.0.2.201902270829.jar:na]
at org.eclipse.jubula.rc.javafx.JavaFXAUTServer.removeToolkitEventListener(JavaFXAUTServer.java:103) ~[org.eclipse.jubula.rc.javafx_7.0.2.201902270829.jar:na]
at org.eclipse.jubula.rc.common.AUTServer.setMode(AUTServer.java:955) ~[org.eclipse.jubula.rc.common_7.0.2.201902270829.jar:na]
at org.eclipse.jubula.rc.common.commands.ChangeAUTModeCommand.execute(ChangeAUTModeCommand.java:103) ~[org.eclipse.jubula.rc.common_7.0.2.201902270829.jar:na]
at org.eclipse.jubula.communication.internal.Communicator$ConnectionListener.received(Communicator.java:921) ~[org.eclipse.jubula.communication_4.0.0.201902270829.jar:na]
at org.eclipse.jubula.communication.internal.connection.Connection.fireMessageReceived(Connection.java:402) ~[org.eclipse.jubula.communication_4.0.0.201902270829.jar:na]
at org.eclipse.jubula.communication.internal.connection.Connection.access$2(Connection.java:391) ~[org.eclipse.jubula.communication_4.0.0.201902270829.jar:na]
at org.eclipse.jubula.communication.internal.connection.Connection$ReaderThread.run(Connection.java:454) ~[org.eclipse.jubula.communication_4.0.0.201902270829.jar:na]
2. When I run the same application from cmd by using autagent. Basically I run the autagent.exe from the *jubula 8.7.1 installation path*/ite and then a bat file containing
autrun.exe -javafx -i "VDT_RUT_A" -w "C:\Users\jfoltas\Desktop\client_trunk_for_jubula" -e "C:\Users\jfoltas\Desktop\client_trunk_for_jubula\run_OTEDVDT_openJdk.bat"
which is the same as the settings configured in Jubula project. This time the application does not start, nothing goes to any of the jubula logs. The following is the full stacktrace from cmd:
C:\Program Files\jubula_8.7.1.046\ite>autrun.exe -javafx -i "VDT_RUT_A" -w "C:\Users\jfoltas\Desktop\client_trunk_for_jubula" -e "C:\Users\jfoltas\Desktop\client_trunk_for_jubula\run_OTEDVDT_openJdk.bat"
AUTs sysout:
AUTs sysout: C:\Users\jfoltas\Desktop\client_trunk_for_jubula>"C:\Program Files\Java\jdk-11.0.2\bin\java" -cp "IntradayMarket.jar" com.indra.market.client.Main_Java11 --ote.server.url=https://otd-market:9443/IndraMarketServer/CommonServlet --ote.log.level=ALL --ote.log.timestamp=1 --add-opens=javafx.controls/javafx.scene.control.skin=ALL-UNNAMED-illegal-access=permit
AUTs syserr: Picked up _JAVA_OPTIONS: "-javaagent:C:\Program Files\jubula_8.7.1.046\ite\plugins\org.eclipse.jubula.rc.common.agent_7.0.2.201902270829.jar"
AUTs syserr: SLF4J: Class path contains multiple SLF4J bindings.
AUTs syserr: SLF4J: Found binding in [jar:file:/C:/Users/jfoltas/Desktop/client_trunk_for_jubula/IntradayMarket.jar!/org/slf4j/impl/StaticLoggerBinder.class]
AUTs syserr: SLF4J: Found binding in [jar:file:/C:/Program%20Files/jubula_8.7.1.046/ite/plugins/ch.qos.logback.slf4j_1.0.7.v201505121915.jar!/org/slf4j/impl/StaticLoggerBinder.class]
AUTs syserr: SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
AUTs sysout: 08:27:25,310 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
AUTs sysout: 08:27:25,310 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
AUTs syserr: SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
AUTs sysout: 08:27:25,310 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/C:/Program%20Files/jubula_8.7.1.046/ite/plugins/org.eclipse.jubula.rc.javafx_7.0.2.201902270829.jar!/logback.xml]
AUTs sysout: 08:27:25,310 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs multiple times on the classpath.
AUTs sysout: 08:27:25,310 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [jar:file:/C:/Program%20Files/jubula_8.7.1.046/ite/plugins/org.eclipse.jubula.rc.javafx_7.0.2.201902270829.jar!/logback.xml]
AUTs sysout: 08:27:25,310 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [jar:file:/C:/Users/jfoltas/Desktop/client_trunk_for_jubula/IntradayMarket.jar!/logback.xml]
AUTs sysout: 08:27:25,342 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@117e949d - URL [jar:file:/C:/Program%20Files/jubula_8.7.1.046/ite/plugins/org.eclipse.jubula.rc.javafx_7.0.2.201902270829.jar!/logback.xml] is not of type file
AUTs sysout: 08:27:25,482 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
AUTs sysout: 08:27:25,498 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
AUTs sysout: 08:27:25,514 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
AUTs sysout: 08:27:25,576 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
AUTs sysout: 08:27:25,654 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
AUTs sysout: 08:27:25,654 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE]
AUTs sysout: 08:27:25,670 |-INFO in ch.qos.logback.core.rolling.FixedWindowRollingPolicy@6db9f5a4 - Will use zip compression
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: C:\Users\jfoltas/.jubula/logs/rc_javafx.log
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [C:\Users\jfoltas/.jubula/logs/rc_javafx.log]
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [CAP-FILE]
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.core.rolling.FixedWindowRollingPolicy@5f8edcc5 - Will use zip compression
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[CAP-FILE] - Active log file name: C:\Users\jfoltas/.jubula/logs/rc_javafx_ExecutedCaps.log
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[CAP-FILE] - File property is set to [C:\Users\jfoltas/.jubula/logs/rc_javafx_ExecutedCaps.log]
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to WARN
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[ROOT]
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [CAP] to DEBUG
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [CAP] to false
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CAP-FILE] to Logger[CAP]
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
AUTs sysout: 08:27:25,685 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@7b02881e - Registering current configuration as safe fallback point
AUTs sysout:
AUTs syserr: Exception in thread "Start AUT Server" java.lang.ExceptionInInitializerError
AUTs syserr: at org.eclipse.jubula.rc.javafx.listener.ComponentHandler.<init>(ComponentHandler.java:94)
AUTs syserr: at org.eclipse.jubula.rc.javafx.JavaFXAUTServer.addToolkitEventListeners(JavaFXAUTServer.java:97)
AUTs syserr: at org.eclipse.jubula.rc.common.AUTServer.addToolKitEventListenerToAUT(AUTServer.java:860)
AUTs syserr: at org.eclipse.jubula.rc.common.AUTServer.startAUT(AUTServer.java:430)
AUTs syserr: at org.eclipse.jubula.rc.common.commands.AUTStartCommand.execute(AUTStartCommand.java:57)
AUTs syserr: at org.eclipse.jubula.rc.common.AUTServer$3.run(AUTServer.java:499)
AUTs syserr: Caused by: java.lang.NullPointerException
AUTs syserr: at com.sun.javafx.tk.quantum.QuantumToolkit.resumeTimer(QuantumToolkit.java:512)
AUTs syserr: at com.sun.javafx.tk.quantum.QuantumToolkit$PulseTask.set(QuantumToolkit.java:203)
AUTs syserr: at com.sun.javafx.tk.quantum.QuantumToolkit.setAnimationRunnable(QuantumToolkit.java:883)
AUTs syserr: at com.sun.javafx.tk.quantum.MasterTimer.postUpdateAnimationRunnable(MasterTimer.java:105)
AUTs syserr: at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.updateAnimationRunnable(AbstractMasterTimer.java:324)
AUTs syserr: at com.sun.scenario.animation.AbstractMasterTimer.addPulseReceiver(AbstractMasterTimer.java:176)
AUTs syserr: at javafx.animation.Animation.addPulseReceiver(Animation.java:148)
AUTs syserr: at javafx.animation.Animation.startReceiver(Animation.java:154)
AUTs syserr: at javafx.animation.Animation.play(Animation.java:913)
AUTs syserr: at org.eclipse.jubula.rc.javafx.components.CurrentStages.<clinit>(CurrentStages.java:102)
AUTs syserr: ... 6 more
AUTs syserr: Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError: <init>
AUTs syserr: at com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
AUTs syserr: at com.sun.glass.ui.Screen.initScreens(Screen.java:412)
AUTs syserr: at com.sun.glass.ui.Application.lambda$run$1(Application.java:152)
AUTs syserr: at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
AUTs syserr: at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
AUTs syserr: at java.base/java.lang.Thread.run(Thread.java:834)
AUTs syserr: Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError: <init>
AUTs syserr: at com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
AUTs syserr: at com.sun.glass.ui.Screen.initScreens(Screen.java:412)
AUTs syserr: at com.sun.glass.ui.Application.lambda$run$1(Application.java:152)
AUTs syserr: at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
AUTs syserr: at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
AUTs syserr: at java.base/java.lang.Thread.run(Thread.java:834)
AUTs syserr: Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
AUTs syserr: at com.sun.prism.d3d.D3DPipeline.getAdapterOrdinal(D3DPipeline.java:205)
AUTs syserr: at com.sun.javafx.tk.quantum.QuantumToolkit.assignScreensAdapters(QuantumToolkit.java:738)
AUTs syserr: at com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(QuantumToolkit.java:334)
AUTs syserr: at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$startup$10(QuantumToolkit.java:279)
AUTs syserr: at com.sun.glass.ui.Application.lambda$run$1(Application.java:153)
AUTs syserr: at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
AUTs syserr: at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
AUTs syserr: at java.base/java.lang.Thread.run(Thread.java:834)
Maybe there might be some significance in the way we pack our application, the application is defined as maven project and the openjavafx is added as dependency and packed along with everything into a fat jar when build. Then in order to run with java11 the workaround of calling "proxy Main" is currently being used (see https://stackoverflow.com/questions/52569724/javafx-11-create-a-jar-file-with-gradle/52571719#52571719). Could this be the problem?
Best regards,
Jakub
[Updated on: Fri, 26 April 2019 03:43] by Moderator
|
|
| | | | | | | | | |
Re: OpenJDK 11 support [message #1810066 is a reply to message #1809979] |
Tue, 30 July 2019 04:48  |
Eclipse User |
|
|
|
Oh sorry that is not what i meant.
It was for the ones who are bundle their own jdk (for example which already includes javaFX) with the jlink application from java. I have done that and missed some parts which are necessary for Jubula test(e.g. the agent is needed which is from java.instrument) but must not necessary for other applications
I can not reproduce the issue with the infinite loop. In my test everything works fine. (But i have no real complex application)
best regards
Marvin Mueller
|
|
|
Goto Forum:
Current Time: Fri Apr 18 10:43:05 EDT 2025
Powered by FUDForum. Page generated in 0.05332 seconds
|