Uploaded image for project: 'Dev - Nexus Repo'
  1. Dev - Nexus Repo
  2. NEXUS-9546

add better validation on task configuration numeric fields

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 3.0.0-m7, 3.0.0, 3.1.0, 3.4.0
    • Fix Version/s: 3.5.0
    • Component/s: UI
    • Labels:

      Description

      Some tasks allow setting numeric values which are invalid. Examples are:

      • Purge incomplete Docker uploads - 'Age in Hours'
      • Purge Unused type tasks - Last used in days

      The UI for Scheduled Tasks allows for configuring 'bad' settings that will inevitably cause the task to fail. In this case I

      2015-12-16 11:54:47,559-0800 ERROR [quartz-2-thread-19] *SYSTEM org.sonatype.nexus.repository.maven.tasks.PurgeMavenUnusedSnapshotsTask - Failed to run task 'Purge Unused Maven Snapshots from *' on repository 'maven-snapshots'
      java.lang.IllegalArgumentException: Number of days must be greater than zero
      at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122) [com.google.guava:18.0.0]
      at org.sonatype.nexus.repository.maven.internal.PurgeUnusedSnapshotsFacetImpl.purgeUnusedSnapshots(PurgeUnusedSnapshotsFacetImpl.java:104) [na:na]
      at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39) [na:na]
      at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:267) [na:na]
      at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53) [na:na]
      at org.sonatype.nexus.repository.maven.tasks.PurgeMavenUnusedSnapshotsTask.execute(PurgeMavenUnusedSnapshotsTask.java:59) [na:na]
      at org.sonatype.nexus.repository.RepositoryTaskSupport.execute(RepositoryTaskSupport.java:56) [na:na]
      at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:89) [org.sonatype.nexus.scheduling:3.0.0.SNAPSHOT]
      at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:137) [org.sonatype.nexus.quartz:3.0.0.SNAPSHOT]
      at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:99) [org.sonatype.nexus.quartz:3.0.0.SNAPSHOT]
      at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [org.quartz-scheduler.quartz:2.2.2]
      at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40) [org.sonatype.nexus.thread:3.0.0.SNAPSHOT]
      at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [org.apache.shiro.core:1.2.4]
      at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [org.apache.shiro.core:1.2.4]
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_66]
      at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_66]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_66]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_66]
      at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]
      

      Reproduction, configure "Purge Unused Snapshots" with -1 Days(see screenshot). Saves no problem but errors on run.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              fmilens Frederick Milens
              Reporter:
              krobinson Kelly Robinson
              Last Updated By:
              Peter Lynch
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Date of First Response:

                  tigCommentSecurity.panel-title