Maven SCM
  1. Maven SCM
  2. SCM-338

NullPointerException when using -DvssDirectory to set ss.exe path

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.0
    • Fix Version/s: 1.1
    • Component/s: maven-scm-provider-vss
    • Labels:
      None
    • Environment:
      Windows XP, JRE 1.4.2
    • Complexity:
      Intermediate
    • Patch Submitted:
      Yes
    • Number of attachments :
      3

      Description

      NullPointerException occurs with any SCM operation when there is no ~/.scm/vss-settings.xml file, and when the vssDirectory system property is set:

      Caused by: java.lang.NullPointerException
              at org.apache.maven.scm.provider.vss.commands.VssCommandLineUtils.getSettings(VssCommandLineUtils.java:137)
              at org.apache.maven.scm.provider.vss.commands.VssCommandLineUtils.getSsDir(VssCommandLineUtils.java:145)
              at org.apache.maven.scm.provider.vss.commands.changelog.VssHistoryCommand.buildCmdLine(VssHistoryCommand.java:91)
              at org.apache.maven.scm.provider.vss.commands.changelog.VssHistoryCommand.executeChangeLogCommand(VssHistoryCommand.java:53)
              at org.apache.maven.scm.command.changelog.AbstractChangeLogCommand.executeCommand(AbstractChangeLogCommand.java:101)
              at org.apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.java:58)
              ... 21 more
      

      This error is easily replicated using the attached project vssproviderbug.zip. Unzip the archive and run

      mvn scm:changelog -DvssDirectory=something -e
      

      Assuming the file ~/.scm/vss-settings.xml does not exist, you should see the above error in the stack traces. Note that you don't need VSS installed (or even to be on Windows) in order to replicate the error - Maven doesn't actually get as far as making a call to ss.exe.

        Activity

        Hide
        Allan Lang added a comment -

        Suggested patch for above issue. Simply instantiates Settings in order to avoid NPE.

        Show
        Allan Lang added a comment - Suggested patch for above issue. Simply instantiates Settings in order to avoid NPE.
        Hide
        Allan Lang added a comment -

        Updated patch SCM-338-[02]-maven-scm-provider-vss.patch includes a new test case for the VssCommandLineUtils, which previously didn't have one.

        The test needs to manipulate the ~\.scm\vss-settings.xml file on disk, which may be a bit suspect depending on how the project is build in CI, so please take a look at what's going on in VssCommandLineUtilsTest.

        Show
        Allan Lang added a comment - Updated patch SCM-338 - [02] -maven-scm-provider-vss.patch includes a new test case for the VssCommandLineUtils , which previously didn't have one. The test needs to manipulate the ~\.scm\vss-settings.xml file on disk, which may be a bit suspect depending on how the project is build in CI, so please take a look at what's going on in VssCommandLineUtilsTest .
        Hide
        Emmanuel Venisse added a comment -

        Patch applied with some changes

        Show
        Emmanuel Venisse added a comment - Patch applied with some changes

          People

          • Assignee:
            Emmanuel Venisse
            Reporter:
            Allan Lang
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: