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
*/