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 2013/05/23 08:54:42 UTC
svn commit: r1485593 -
/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java
Author: cziegeler
Date: Thu May 23 06:54:42 2013
New Revision: 1485593
URL: http://svn.apache.org/r1485593
Log:
SLING-2878 : NPE in JobConsumerManager
Modified:
sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java?rev=1485593&r1=1485592&r2=1485593&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobConsumerManager.java Thu May 23 06:54:42 2013
@@ -162,14 +162,14 @@ public class JobConsumerManager {
synchronized ( this.topicToConsumerMap ) {
final List<ConsumerInfo> consumers = this.topicToConsumerMap.get(topic);
if ( consumers != null ) {
- return consumers.get(0).getConsumer();
+ return consumers.get(0).getConsumer(this.bundleContext);
}
final int pos = topic.lastIndexOf('/');
if ( pos > 0 ) {
final String category = topic.substring(0, pos + 1).concat("*");
final List<ConsumerInfo> categoryConsumers = this.topicToConsumerMap.get(category);
if ( categoryConsumers != null ) {
- return categoryConsumers.get(0).getConsumer();
+ return categoryConsumers.get(0).getConsumer(this.bundleContext);
}
}
}
@@ -197,7 +197,7 @@ public class JobConsumerManager {
protected void bindJobConsumer(final ServiceReference serviceReference) {
final String[] topics = PropertiesUtil.toStringArray(serviceReference.getProperty(JobConsumer.PROPERTY_TOPICS));
if ( topics != null && topics.length > 0 ) {
- final ConsumerInfo info = new ConsumerInfo(this.bundleContext, serviceReference);
+ final ConsumerInfo info = new ConsumerInfo(serviceReference);
boolean changed = false;
synchronized ( this.topicToConsumerMap ) {
for(final String t : topics) {
@@ -234,7 +234,7 @@ public class JobConsumerManager {
protected void unbindJobConsumer(final ServiceReference serviceReference) {
final String[] topics = PropertiesUtil.toStringArray(serviceReference.getProperty(JobConsumer.PROPERTY_TOPICS));
if ( topics != null && topics.length > 0 ) {
- final ConsumerInfo info = new ConsumerInfo(this.bundleContext, serviceReference);
+ final ConsumerInfo info = new ConsumerInfo(serviceReference);
boolean changed = false;
synchronized ( this.topicToConsumerMap ) {
for(final String t : topics) {
@@ -314,11 +314,9 @@ public class JobConsumerManager {
private JobConsumer consumer;
public final int ranking;
public final long serviceId;
- private final BundleContext bundleContext;
- public ConsumerInfo(final BundleContext bc, final ServiceReference serviceReference) {
+ public ConsumerInfo(final ServiceReference serviceReference) {
this.serviceReference = serviceReference;
- this.bundleContext = bc;
final Object sr = serviceReference.getProperty(Constants.SERVICE_RANKING);
if ( sr == null || !(sr instanceof Integer)) {
this.ranking = 0;
@@ -352,9 +350,9 @@ public class JobConsumerManager {
return serviceReference.hashCode();
}
- public JobConsumer getConsumer() {
+ public JobConsumer getConsumer(final BundleContext bundleContext) {
if ( consumer == null ) {
- consumer = (JobConsumer) this.bundleContext.getService(this.serviceReference);
+ consumer = (JobConsumer) bundleContext.getService(this.serviceReference);
}
return consumer;
}