Uploaded image for project: 'Maven SCM'
  1. Maven SCM
  2. SCM-604

SCM API - Changelog fails if there are no changes in the specified range

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 1.4
    • None
    • None
    • Reproducible in ubuntu, windows xp

    Description

      The issue was found while using maven changelog plugin. If there are no changes in the range specified in changelog configuration, the plugin fails with error:-

      [INFO] --- maven-changelog-plugin:2.2:changelog (generate-changelog) @ core ---
      [INFO] Generating changed sets xml to: /home/cquser/Workspace/core/target/changelog.xml
      [INFO] No password found, proceeding without it.
      [ERROR] CommandLineException Exit code: 1 - Usage: describe [-d<flags> -s -S] [changelist#...]
      Missing/wrong number of arguments.
      
      Command line was:p4 -d /home/cquser/Workspace/core -p perforce:1980 describe -s
      org.codehaus.plexus.util.cli.CommandLineException: Exit code: 1 - Usage: describe [-d<flags> -s -S] [changelist#...]
      Missing/wrong number of arguments.
      
      Command line was:p4 -d /home/cquser/Workspace/core -p perforce:1980 describe -s
      	at org.apache.maven.scm.provider.perforce.command.changelog.PerforceChangeLogCommand.executeChangeLogCommand(PerforceChangeLogCommand.java:151)
      	at org.apache.maven.scm.provider.perforce.command.changelog.PerforceChangeLogCommand.executeChangeLogCommand(PerforceChangeLogCommand.java:74)
      	at org.apache.maven.scm.command.changelog.AbstractChangeLogCommand.executeCommand(AbstractChangeLogCommand.java:102)
      	at org.apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.java:59)
      	at org.apache.maven.scm.provider.perforce.PerforceScmProvider.changelog(PerforceScmProvider.java:159)
      	at org.apache.maven.scm.provider.AbstractScmProvider.changeLog(AbstractScmProvider.java:248)
      	at org.apache.maven.plugin.changelog.ChangeLogReport.generateChangeSetsFromSCM(ChangeLogReport.java:619)
      	at org.apache.maven.plugin.changelog.ChangeLogReport.getChangedSets(ChangeLogReport.java:535)
      	at org.apache.maven.plugin.changelog.ChangeLogReport.executeReport(ChangeLogReport.java:448)
      	at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:135)
      	at org.apache.maven.reporting.AbstractMavenReport.execute(AbstractMavenReport.java:87)
      	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
      	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
      	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
      	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
      	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
      	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
      	at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
      	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
      	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
      	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
      	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534)
      	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
      	at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
      	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
      	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
      	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
      

      After getting changesets, the command "p4 -d /home/cquser/Workspace/core -p perforce:1980 describe -s [changeset#]" is executed but as there are no changesets returned, the command is executed without the changeset number and thereby failing.

      There should be proper handling if no changesets are returned and no exception should be thrown. Please check this issue.

      Attachments

        Activity

          People

            Unassigned Unassigned
            waiky Waikhom Ningsuhen
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: