Author: cziegeler
Date: Wed Jul 17 08:36:33 2013
New Revision: 1504048
URL: http://svn.apache.org/r1504048
Log:
SLING-2971 : BackgroundLoader thread dies for invalid paths
Modified:
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/BackgroundLoader.java
Modified:
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/BackgroundLoader.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/BackgroundLoader.java?rev=1504048&r1=1504047&r2=1504048&view=diff
==============================================================================
---
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/BackgroundLoader.java
(original)
+++
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/BackgroundLoader.java
Wed Jul 17 08:36:33 2013
@@ -220,16 +220,21 @@ public class BackgroundLoader implements
try {
resolver =
this.resourceResolverFactory.getAdministrativeResourceResolver(null);
final Resource resource =
resolver.getResource(path);
- if ( resource != null &&
ResourceHelper.RESOURCE_TYPE_JOB.equals(resource.getResourceType()) ) {
- this.logger.debug("Reading local job from {}",
path);
- final JobImpl job =
this.jobManager.readJob(resource);
- if ( job != null ) {
- if ( job.hasReadErrors() ) {
- synchronized ( this.unloadedJobs ) {
- this.unloadedJobs.add(path);
+ if ( resource == null ) {
+ // this should actually never happen, just a
sanity check (see SLING-2971)
+ logger.warn("No job resource found for path
{}. Potential job will not be processed.", path);
+ } else {
+ if
(ResourceHelper.RESOURCE_TYPE_JOB.equals(resource.getResourceType()) ) {
+ this.logger.debug("Reading local job from
{}", path);
+ final JobImpl job =
this.jobManager.readJob(resource);
+ if ( job != null ) {
+ if ( job.hasReadErrors() ) {
+ synchronized ( this.unloadedJobs )
{
+ this.unloadedJobs.add(path);
+ }
+ } else {
+ this.jobManager.process(job);
}
- } else {
- this.jobManager.process(job);
}
}
}