You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2015/12/17 15:19:29 UTC
svn commit: r1720554 - in /sling/trunk/bundles/commons/scheduler: pom.xml
src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java
Author: cziegeler
Date: Thu Dec 17 14:19:28 2015
New Revision: 1720554
URL: http://svn.apache.org/viewvc?rev=1720554&view=rev
Log:
SLING-5381 : NPE in QuartzScheduler
Modified:
sling/trunk/bundles/commons/scheduler/pom.xml
sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java
Modified: sling/trunk/bundles/commons/scheduler/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/scheduler/pom.xml?rev=1720554&r1=1720553&r2=1720554&view=diff
==============================================================================
--- sling/trunk/bundles/commons/scheduler/pom.xml (original)
+++ sling/trunk/bundles/commons/scheduler/pom.xml Thu Dec 17 14:19:28 2015
@@ -182,7 +182,7 @@
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
- <version>2.2.1</version>
+ <version>2.2.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
Modified: sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java?rev=1720554&r1=1720553&r2=1720554&view=diff
==============================================================================
--- sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java (original)
+++ sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java Thu Dec 17 14:19:28 2015
@@ -144,6 +144,7 @@ public class QuartzScheduler implements
/**
* @see org.osgi.framework.BundleListener#bundleChanged(org.osgi.framework.BundleEvent)
*/
+ @Override
public void bundleChanged(final BundleEvent event) {
if ( event.getType() == BundleEvent.STOPPED ) {
final Long bundleId = event.getBundle().getBundleId();
@@ -157,14 +158,16 @@ public class QuartzScheduler implements
final Set<JobKey> keys = s.getJobKeys(GroupMatcher.jobGroupEquals(group));
for(final JobKey key : keys) {
final JobDetail detail = s.getJobDetail(key);
- final String jobName = (String) detail.getJobDataMap().get(QuartzScheduler.DATA_MAP_NAME);
- final Object job = detail.getJobDataMap().get(QuartzScheduler.DATA_MAP_OBJECT);
-
- if ( jobName != null && job != null ) {
- final Long jobBundleId = (Long) detail.getJobDataMap().get(QuartzScheduler.DATA_MAP_BUNDLE_ID);
- if ( jobBundleId != null && jobBundleId.equals(bundleId) ) {
- s.deleteJob(key);
- this.logger.debug("Unscheduling job with name {}", jobName);
+ if ( detail != null ) {
+ final String jobName = (String) detail.getJobDataMap().get(QuartzScheduler.DATA_MAP_NAME);
+ final Object job = detail.getJobDataMap().get(QuartzScheduler.DATA_MAP_OBJECT);
+
+ if ( jobName != null && job != null ) {
+ final Long jobBundleId = (Long) detail.getJobDataMap().get(QuartzScheduler.DATA_MAP_BUNDLE_ID);
+ if ( jobBundleId != null && jobBundleId.equals(bundleId) ) {
+ s.deleteJob(key);
+ this.logger.debug("Unscheduling job with name {}", jobName);
+ }
}
}
}
@@ -457,6 +460,7 @@ public class QuartzScheduler implements
/**
* @see org.quartz.spi.QuartzThreadPool#getPoolSize()
*/
+ @Override
public int getPoolSize() {
return this.executor.getConfiguration().getMaxPoolSize();
}
@@ -464,6 +468,7 @@ public class QuartzScheduler implements
/**
* @see org.quartz.spi.QuartzThreadPool#initialize()
*/
+ @Override
public void initialize() {
// nothing to do
}
@@ -471,6 +476,7 @@ public class QuartzScheduler implements
/**
* @see org.quartz.spi.ThreadPool#setInstanceId(java.lang.String)
*/
+ @Override
public void setInstanceId(final String id) {
// we ignore this
}
@@ -478,6 +484,7 @@ public class QuartzScheduler implements
/**
* @see org.quartz.spi.ThreadPool#setInstanceName(java.lang.String)
*/
+ @Override
public void setInstanceName(final String name) {
// we ignore this
}
@@ -485,6 +492,7 @@ public class QuartzScheduler implements
/**
* @see org.quartz.spi.QuartzThreadPool#runInThread(java.lang.Runnable)
*/
+ @Override
public boolean runInThread(final Runnable job) {
this.executor.execute(job);
@@ -494,6 +502,7 @@ public class QuartzScheduler implements
/**
* @see org.quartz.spi.ThreadPool#blockForAvailableThreads()
*/
+ @Override
public int blockForAvailableThreads() {
return this.executor.getConfiguration().getMaxPoolSize() - this.executor.getConfiguration().getQueueSize();
}
@@ -501,6 +510,7 @@ public class QuartzScheduler implements
/**
* @see org.quartz.spi.QuartzThreadPool#shutdown(boolean)
*/
+ @Override
public void shutdown(final boolean waitForJobsToComplete) {
// the pool is managed by the thread pool manager,
// so we can just return