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