glassfish
  1. glassfish
  2. GLASSFISH-15726

appclient fails on Windows systems using MKS toolkit with java.lang.ClassNotFoundException: org.glassfish.appclient.client.acc.agent.ACCAgentClassLoader

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 3.1_dev
    • Fix Version/s: 3.1_dev
    • Component/s: standalone_client
    • Labels:
      None
    • Environment:

      Windows running MKS toolkit

      Description

      Running the appclient script on a Windows system running the MKS toolkit fails with a stack trace beginning with this:

      java.lang.Error: java.lang.ClassNotFoundException: org.glassfish.appclient.client.acc.agent.ACCAgentClassLoader
      at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1357)
      at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1320)

      The problem is that Java indicates that the CLIBootstrap class (which builds the java command to actually launch the ACC) is in a Windows environment, and therefore CLIBootstrap generates the java command using the semi-colon for the path separator. An earlier change dealt with this problem with Windows/cygwin systems, but does not handle the Windows/MKS case. As a result, the generated java command uses semi-colons for path separators but the MKS shell expects to see colons for that, and semi-colons as command separators.

        Activity

        Hide
        Tim Quinn added a comment -

        How bad is its impact? (Severity)
        Identify why the fix needs to occur now:

        • Is a regression of functionality or performance available in a prior release
        • Likely to generate a customer support call

        How often does it happen? (Frequency)
        when a user runs the appclient command on a Windows system from an MKS shell

        How much effort is required to fix it? (Cost)
        minimal - I have a fix in my workspace already

        What is the risk of fixing it? (Risk)
        low to moderate - the appclient script is used not only on Windows/MKS and Windows/cygwin systems but also on non-Windows systems. I have already tested the fix on Windows/MKS and Mac OS X as an example of a non-Windows environment. I still need to test on Windows/cygwin.

        Does a work around for the issue exist? Can the workaround be reasonably employed by the end user?
        There is not a practical workaround. Users could avoid invoking appclient under MKS but that would defeat the purpose of having MKS installed - typically to provide a more uniform environment across multiple platforms.

        If the issue is not fixed should the issue and its workaround (if applicable) be described in the Release Notes?

        Show
        Tim Quinn added a comment - How bad is its impact? (Severity) Identify why the fix needs to occur now: Is a regression of functionality or performance available in a prior release Likely to generate a customer support call How often does it happen? (Frequency) when a user runs the appclient command on a Windows system from an MKS shell How much effort is required to fix it? (Cost) minimal - I have a fix in my workspace already What is the risk of fixing it? (Risk) low to moderate - the appclient script is used not only on Windows/MKS and Windows/cygwin systems but also on non-Windows systems. I have already tested the fix on Windows/MKS and Mac OS X as an example of a non-Windows environment. I still need to test on Windows/cygwin. Does a work around for the issue exist? Can the workaround be reasonably employed by the end user? There is not a practical workaround. Users could avoid invoking appclient under MKS but that would defeat the purpose of having MKS installed - typically to provide a more uniform environment across multiple platforms. If the issue is not fixed should the issue and its workaround (if applicable) be described in the Release Notes?
        Hide
        Tim Quinn added a comment -

        Fixes checked in for the 3.1 branch and the trunk.

        Branch check-in:

        Project: glassfish
        Repository: svn
        Revision: 44766
        Author: tjquinn
        Date: 2011-01-28 05:54:29 UTC
        Link:

        Log Message:
        ------------
        Fix for 15726

        Similarly to cygwin, MKS on Windows expects the path separator to be the Unix-style colon separator. Java, left alone, though, will report the semi-colon as the path separator on Windows even if run under MKS. These changes cause the appclient script (non-Windows version only, which is used by MKS and cygwin shells as well as Unix shells) to set a property which indicates (basically) that a Unix-style invocation is in progress. This way, CLIBootstrap can use the suitable path separator.

        Approved: Nazrul
        Reviewed: Chris
        Tests: appclient tests on Mac OS X, Windows/cygwin, Windows/MKS

        Revisions:
        ----------
        44766

        Modified Paths:
        ---------------
        branches/3.1/appclient/client/acc/src/main/java/org/glassfish/appclient/client/CLIBootstrap.java
        branches/3.1/appclient/client/appclient-scripts/src/main/resources/glassfish/bin/appclient

        Trunk check-in:

        Project: glassfish
        Repository: svn
        Revision: 44767
        Author: tjquinn
        Date: 2011-01-28 05:55:52 UTC
        Link:

        Log Message:
        ------------
        Fix for 15726

        Similarly to cygwin, MKS on Windows expects the path separator to be the Unix-style colon separator. Java, left alone, though, will report the semi-colon as the path separator on Windows even if run under MKS. These changes cause the appclient script (non-Windows version only, which is used by MKS and cygwin shells as well as Unix shells) to set a property which indicates (basically) that a Unix-style invocation is in progress. This way, CLIBootstrap can use the suitable path separator.

        Approved: Nazrul
        Reviewed: Chris
        Tests: appclient tests on Mac OS X, Windows/cygwin, Windows/MKS

        Revisions:
        ----------
        44767

        Modified Paths:
        ---------------
        trunk/v3/appclient/client/appclient-scripts/src/main/resources/glassfish/bin/appclient
        trunk/v3/appclient/client/acc/src/main/java/org/glassfish/appclient/client/CLIBootstrap.java

        Show
        Tim Quinn added a comment - Fixes checked in for the 3.1 branch and the trunk. Branch check-in: Project: glassfish Repository: svn Revision: 44766 Author: tjquinn Date: 2011-01-28 05:54:29 UTC Link: Log Message: ------------ Fix for 15726 Similarly to cygwin, MKS on Windows expects the path separator to be the Unix-style colon separator. Java, left alone, though, will report the semi-colon as the path separator on Windows even if run under MKS. These changes cause the appclient script (non-Windows version only, which is used by MKS and cygwin shells as well as Unix shells) to set a property which indicates (basically) that a Unix-style invocation is in progress. This way, CLIBootstrap can use the suitable path separator. Approved: Nazrul Reviewed: Chris Tests: appclient tests on Mac OS X, Windows/cygwin, Windows/MKS Revisions: ---------- 44766 Modified Paths: --------------- branches/3.1/appclient/client/acc/src/main/java/org/glassfish/appclient/client/CLIBootstrap.java branches/3.1/appclient/client/appclient-scripts/src/main/resources/glassfish/bin/appclient Trunk check-in: Project: glassfish Repository: svn Revision: 44767 Author: tjquinn Date: 2011-01-28 05:55:52 UTC Link: Log Message: ------------ Fix for 15726 Similarly to cygwin, MKS on Windows expects the path separator to be the Unix-style colon separator. Java, left alone, though, will report the semi-colon as the path separator on Windows even if run under MKS. These changes cause the appclient script (non-Windows version only, which is used by MKS and cygwin shells as well as Unix shells) to set a property which indicates (basically) that a Unix-style invocation is in progress. This way, CLIBootstrap can use the suitable path separator. Approved: Nazrul Reviewed: Chris Tests: appclient tests on Mac OS X, Windows/cygwin, Windows/MKS Revisions: ---------- 44767 Modified Paths: --------------- trunk/v3/appclient/client/appclient-scripts/src/main/resources/glassfish/bin/appclient trunk/v3/appclient/client/acc/src/main/java/org/glassfish/appclient/client/CLIBootstrap.java

          People

          • Assignee:
            Tim Quinn
            Reporter:
            Tim Quinn
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: