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: commits-unsubscr...@camel.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to