diff options
author | Jens Kübler | 2016-09-05 15:54:47 +0000 |
---|---|---|
committer | Thomas Watson | 2016-09-06 14:36:34 +0000 |
commit | 3baed27b55e5f9135ec64415b4ac7ef128609d72 (patch) | |
tree | f977e99190536176ddef05cd45efdf6aeeb293ff | |
parent | 9a26c24f25e49b38713692091c289b7dafb34ac5 (diff) | |
download | rt.equinox.bundles-3baed27b55e5f9135ec64415b4ac7ef128609d72.tar.gz rt.equinox.bundles-3baed27b55e5f9135ec64415b4ac7ef128609d72.tar.xz rt.equinox.bundles-3baed27b55e5f9135ec64415b4ac7ef128609d72.zip |
Bug 500873 - [DS] NPE on configuration delete causes performanceY20160915-1000Y20160908-1000I20160920-0800I20160915-0230I20160915-0200I20160914-2300I20160914-2000I20160914-0800I20160914-0430I20160914-0030I20160913-2000I20160913-0800I20160912-2000I20160912-1005I20160912-0800I20160912-0430I20160912-0225I20160912-0140I20160911-2015
Do the null check
Change-Id: Id1d1caa5adb4bfd2e2b5136570ee45e251900f7d
Signed-off-by: Jens Kübler <kuebler@aquintos.com>
-rw-r--r-- | bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/internal/ds/SCRManager.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/internal/ds/SCRManager.java b/bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/internal/ds/SCRManager.java index a6aa1461b..1536f536a 100644 --- a/bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/internal/ds/SCRManager.java +++ b/bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/internal/ds/SCRManager.java @@ -438,12 +438,15 @@ public class SCRManager implements ServiceListener, SynchronousBundleListener, C sc.setState(Component.STATE_UNSATISFIED); resolver.enableComponents(components); } else { - // we can just dispose this SCP - sc.componentProps.removeElement(scp); - Vector components = new Vector(); - components.addElement(scp); - resolver.disposeComponentConfigs(components, ComponentConstants.DEACTIVATION_REASON_CONFIGURATION_DELETED); - scp.setState(Component.STATE_DISPOSED); + // in case it has ever been constructed + if (scp != null) { + // we can just dispose this SCP + sc.componentProps.removeElement(scp); + Vector components = new Vector(); + components.addElement(scp); + resolver.disposeComponentConfigs(components, ComponentConstants.DEACTIVATION_REASON_CONFIGURATION_DELETED); + scp.setState(Component.STATE_DISPOSED); + } } } break; |