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

                 Key: SCM-604
                 URL: http://jira.codehaus.org/browse/SCM-604
             Project: Maven SCM
          Issue Type: Bug
          Components: maven-scm-provider-perforce
    Affects Versions: 1.4
         Environment: Reproducible in ubuntu, windows xp
            Reporter: Waikhom Ningsuhen


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:-
{code}
[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)
{code}

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.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to