JiriOndrusek opened a new issue, #6889:
URL: https://github.com/apache/camel-quarkus/issues/6889
### Bug description
Jt400 client is tightly coupled with GUI dialogues, which does not work in
the native. In previous version (`20.0.7`), the limitation was solved by a
couple of substitutions. The newest version (20.0.8) brings several small
changes, which add more gui actions into the signon process. After several
hours spent on the preparation of new substitutions I start to think, that it
is not possible to substitute code in a way that signon works on the native.
(mostly because the class `ToolboxSignonHandler` is final and therefore can not
be modified.
Here is one of many errors, which happens (obtained on jt400-mocked tests):
```
Error: Detected a started Thread in the image heap. Thread name: Java2D
Disposer. Threads running in the image generator are no longer running at image
runtime. If these objects should not be stored in the image heap, you can use
'--trace-object-instantiation=java.lang.Thread'
to find classes that instantiate these objects. Once you found such a class,
you can mark it explicitly for run time initialization with
'--initialize-at-run-time=<culprit>'
to prevent the instantiation of the object.
The object was probably created by a class initializer and is reachable from
a static field. You can request class initialization at image runtime by using
the option --initialize-at-run-time=<class-name>. Or you can write your own
initialization methods and call them explicitly from your main entry point.
Detailed message:
Trace: Object was reached by
reading field
java.util.concurrent.locks.AbstractQueuedSynchronizer$Node.waiter of constant
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode@619472ea:
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode@619472ea
reading field
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.firstWaiter
of constant
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3011233f:
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3011233f
reading field java.lang.ref.ReferenceQueue.notEmpty of constant
java.lang.ref.ReferenceQueue@36b1f89e:
java.lang.ref.ReferenceQueue@36b1f89e
scanning root java.lang.ref.ReferenceQueue@36b1f89e:
java.lang.ref.ReferenceQueue@36b1f89e embedded in
sun.java2d.Disposer.add(Disposer.java:135)
parsing method sun.java2d.Disposer.add(Disposer.java:130) reachable via
the parsing context
at sun.java2d.Disposer.addRecord(Disposer.java:118)
at java.awt.Window.init(Window.java:534)
at java.awt.Window.<init>(Window.java:453)
at java.awt.Window.<init>(Window.java:608)
at java.awt.Dialog.<init>(Dialog.java:674)
at com.ibm.as400.access.PasswordDialog.<init>(PasswordDialog.java:73)
at
com.ibm.as400.access.ToolboxSignonHandler.setupPasswordDialog(ToolboxSignonHandler.java:596)
at
com.ibm.as400.access.ToolboxSignonHandler.handleSignon(ToolboxSignonHandler.java:515)
at
com.ibm.as400.access.ToolboxSignonHandler.connectionInitiated(ToolboxSignonHandler.java:52)
at com.ibm.as400.access.AS400.promptSignon(AS400.java:3871)
at com.ibm.as400.access.AS400.signon(AS400.java:5436)
at com.ibm.as400.access.AS400.getCcsid(AS400.java:2192)
...
```
I added a simple workaround when the signon is disabled in the native -
until the proper fix is prepared.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]