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 2016/07/08 11:50:39 UTC
svn commit: r1751888 - in
/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl:
FactoryPreconditions.java providers/ResourceProviderTracker.java
Author: cziegeler
Date: Fri Jul 8 11:50:39 2016
New Revision: 1751888
URL: http://svn.apache.org/viewvc?rev=1751888&view=rev
Log:
SLING-5829 : Fix handling of SERVICE_PID
Modified:
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/FactoryPreconditions.java
sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTracker.java
Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/FactoryPreconditions.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/FactoryPreconditions.java?rev=1751888&r1=1751887&r2=1751888&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/FactoryPreconditions.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/FactoryPreconditions.java Fri Jul 8 11:50:39 2016
@@ -95,7 +95,7 @@ public class FactoryPreconditions {
canRegister = false;
for (final ResourceProviderHandler h : localTracker.getResourceProviderStorage().getAllHandlers()) {
final ServiceReference ref = h.getInfo().getServiceReference();
- final String servicePid = (String)ref.getProperty(Constants.SERVICE_PID);
+ final Object servicePid = ref.getProperty(Constants.SERVICE_PID);
if ( unavailableServicePid != null && unavailableServicePid.equals(servicePid) ) {
// ignore this service
continue;
Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTracker.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTracker.java?rev=1751888&r1=1751887&r2=1751888&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTracker.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/providers/ResourceProviderTracker.java Fri Jul 8 11:50:39 2016
@@ -107,7 +107,11 @@ public class ResourceProviderTracker imp
final ServiceReference ref = (ServiceReference)service;
final ResourceProviderInfo info = infos.remove(ref);
if ( info != null ) {
- unregister(info, (String)ref.getProperty(Constants.SERVICE_PID));
+ Object pid = ref.getProperty(Constants.SERVICE_PID);
+ if ( pid != null && !(pid instanceof String) ) {
+ pid = null;
+ }
+ unregister(info, (String)pid);
}
}
@@ -199,7 +203,11 @@ public class ResourceProviderTracker imp
if ( deactivateHandler != null ) {
final ResourceProviderInfo handlerInfo = deactivateHandler.getInfo();
if ( cl != null ) {
- cl.providerRemoved((String)handlerInfo.getServiceReference().getProperty(Constants.SERVICE_PID),
+ Object pid = handlerInfo.getServiceReference().getProperty(Constants.SERVICE_PID);
+ if ( pid != null && !(pid instanceof String) ) {
+ pid = null;
+ }
+ cl.providerRemoved((String)pid,
handlerInfo.getAuthType() != AuthType.no,
deactivateHandler.isUsed());
}
@@ -479,15 +487,15 @@ public class ResourceProviderTracker imp
private static final class ProviderEvent {
public final boolean isAdd;
- public final String pid;
+ public final Object pid;
public final String path;
public ProviderEvent(final boolean isAdd, final ResourceProviderInfo info) {
this.isAdd = isAdd;
this.path = info.getPath();
- String pid = (String) info.getServiceReference().getProperty(Constants.SERVICE_PID);
+ Object pid = info.getServiceReference().getProperty(Constants.SERVICE_PID);
if (pid == null) {
- pid = (String) info.getServiceReference().getProperty(LegacyResourceProviderWhiteboard.ORIGINAL_SERVICE_PID);
+ pid = info.getServiceReference().getProperty(LegacyResourceProviderWhiteboard.ORIGINAL_SERVICE_PID);
}
this.pid = pid;
}