Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-21857

Hot code replacement doesn't work on OpenShift

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • 4.30.x
    • 4.3.1.Beta2
    • openshift
    • None
    • devex #123 November 2016
    • 5
    • Hide

      EXEC: Create a new OpenShift EAP 6.4 application: Open New OpenShift application wizard, select eap64-basic-s2i template, proceed to next wizard page, change CONTEXT_DIR param to helloworld, click Finish and let import application to your workspace once you are prompted.
      EXEC: Create a new OpenShift 3 server adapter for the application.
      ASSERT: There is a started server adapter for the application in Servers view.
      EXEC: Restart server adapter in debug mode.
      ASSERT: Server adapter is in debug mode, synchronized.
      EXEC: Rename method or add a field to class (e.g. in HelloService) = do HCR incompatible change in class structure.
      EXEC: Save editor.
      ASSERT: Dialog warning about failed HCR is shown.
      EXEC: Click button Restart buttons in Hot Code Replace Failed dialog.
      ASSERT: Module is deployed on a remote server.

      RESULT: Debugger is out of sync.
      EXPECTED RESULT: Debugger is back to sync.

      EXEC: Make a HCR compatible change (in method body e.g. change returned message).
      EXEC: Save editor.

      RESULT: Hot Code Replace Failed dialog is shown.
      EXPECTED RESULT: Change is propagated successfully, there is no HCR Failed dialog and debugger is in sync.

      Show
      EXEC: Create a new OpenShift EAP 6.4 application: Open New OpenShift application wizard, select eap64-basic-s2i template, proceed to next wizard page, change CONTEXT_DIR param to helloworld, click Finish and let import application to your workspace once you are prompted. EXEC: Create a new OpenShift 3 server adapter for the application. ASSERT: There is a started server adapter for the application in Servers view. EXEC: Restart server adapter in debug mode. ASSERT: Server adapter is in debug mode, synchronized. EXEC: Rename method or add a field to class (e.g. in HelloService) = do HCR incompatible change in class structure. EXEC: Save editor. ASSERT: Dialog warning about failed HCR is shown. EXEC: Click button Restart buttons in Hot Code Replace Failed dialog. ASSERT: Module is deployed on a remote server. RESULT: Debugger is out of sync. EXPECTED RESULT: Debugger is back to sync. EXEC: Make a HCR compatible change (in method body e.g. change returned message). EXEC: Save editor. RESULT: Hot Code Replace Failed dialog is shown. EXPECTED RESULT: Change is propagated successfully, there is no HCR Failed dialog and debugger is in sync.

      When enabling debug mode on an EAP server deployed on OpenShift, locally changing a class file will :

      • work sometimes when only the content of the method changed, but could fail in some other occasions with the Debugger saying the JDK is out of sync
      • will always fail if a method signature changed, the debugger saying JDK is out of sync

      Restarting the deployed module (with the .dodeploy flag) doesn't fixes the issue (as opposed to the same tweak ahen running on a local EAP server)

      This may be caused by running OpenJDK? Does it support the same level of debugging as Oracle JDK?

        1. code-out-of-sync.png
          46 kB
          André Dietisheim
        2. hot-code-replace-failed.png
          38 kB
          André Dietisheim
        3. jmx-connected-adapter-synchronized.png
          25 kB
          André Dietisheim

              rob.stryker Rob Stryker (Inactive)
              fbricon@redhat.com Fred Bricon
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated: