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;
         }