Author: cziegeler
Date: Tue Aug 19 18:41:03 2014
New Revision: 1618926

URL: http://svn.apache.org/r1618926
Log:
SLING-3856 : NPE in JobManager.getJob if no map is provided

Modified:
    
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
    
sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/JobHandlingTest.java

Modified: 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java?rev=1618926&r1=1618925&r2=1618926&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
 (original)
+++ 
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
 Tue Aug 19 18:41:03 2014
@@ -946,10 +946,15 @@ public class JobManagerImpl
     /**
      * @see org.apache.sling.event.jobs.JobManager#getJob(java.lang.String, 
java.util.Map)
      */
+    @SuppressWarnings("unchecked")
     @Override
     public Job getJob(final String topic, final Map<String, Object> template) {
-        @SuppressWarnings("unchecked")
-        final Iterable<Job> iter = this.findJobs(QueryType.ALL, topic, 1, 
template);
+        final Iterable<Job> iter;
+        if ( template == null ) {
+            iter = this.findJobs(QueryType.ALL, topic, 1, (Map<String, 
Object>[])null);
+        } else {
+            iter = this.findJobs(QueryType.ALL, topic, 1, template);
+        }
         final Iterator<Job> i = iter.iterator();
         if ( i.hasNext() ) {
             return i.next();

Modified: 
sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/JobHandlingTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/JobHandlingTest.java?rev=1618926&r1=1618925&r2=1618926&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/JobHandlingTest.java
 (original)
+++ 
sling/trunk/bundles/extensions/event/src/test/java/org/apache/sling/event/it/JobHandlingTest.java
 Tue Aug 19 18:41:03 2014
@@ -258,6 +258,38 @@ public class JobHandlingTest extends Abs
    }
 
     /**
+     * Test get a job
+     */
+    @Test(timeout = DEFAULT_TEST_TIMEOUT)
+    public void testGetJob() throws Exception {
+        final Barrier cb = new Barrier(2);
+        final Barrier cb2 = new Barrier(2);
+        final ServiceRegistration jcReg = this.registerJobConsumer(TOPIC,
+                new JobConsumer() {
+
+                    @Override
+                    public JobResult process(Job job) {
+                        cb.block();
+                        cb2.block();
+                        return JobResult.OK;
+                    }
+                });
+        try {
+            final JobManager jobManager = this.getJobManager();
+            final Job j = jobManager.addJob(TOPIC, null);
+            cb.block();
+
+            assertNotNull(jobManager.getJob(TOPIC, null));
+
+            cb2.block(); // and continue job
+
+            jobManager.removeJobById(j.getId());
+        } finally {
+            jcReg.unregister();
+        }
+    }
+
+    /**
      * Test force canceling a job
      * The job execution always fails
      */


Reply via email to