This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.commons.classloader-1.2.4 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-classloader.git
commit 1f859b96921b2043248dcffe9a389c9fa9f1ab10 Author: Carsten Ziegeler <[email protected]> AuthorDate: Mon Jul 4 07:04:02 2011 +0000 SLING-2122 : SynchronousBundleListener might be called concurrently git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/classloader@1142570 13f79535-47bb-0310-9956-ffa450edef68 --- .../sling/commons/classloader/impl/Activator.java | 26 ++++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/apache/sling/commons/classloader/impl/Activator.java b/src/main/java/org/apache/sling/commons/classloader/impl/Activator.java index 62095e0..d02d899 100644 --- a/src/main/java/org/apache/sling/commons/classloader/impl/Activator.java +++ b/src/main/java/org/apache/sling/commons/classloader/impl/Activator.java @@ -108,18 +108,20 @@ public class Activator implements SynchronousBundleListener, BundleActivator { * @see org.osgi.framework.BundleListener#bundleChanged(org.osgi.framework.BundleEvent) */ public void bundleChanged(BundleEvent event) { - final boolean reload; - if ( event.getType() == BundleEvent.RESOLVED ) { - reload = this.service.isBundleUsed(event.getBundle().getBundleId()) - || this.service.hasUnresolvedPackages(event.getBundle()); - } else if ( event.getType() == BundleEvent.UNRESOLVED ) { - reload = this.service.isBundleUsed(event.getBundle().getBundleId()); - } else { - reload = false; - } - if ( reload ) { - this.unregisterManagerFactory(); - this.registerManagerFactory(); + synchronized ( this ) { + final boolean reload; + if ( event.getType() == BundleEvent.RESOLVED ) { + reload = this.service.isBundleUsed(event.getBundle().getBundleId()) + || this.service.hasUnresolvedPackages(event.getBundle()); + } else if ( event.getType() == BundleEvent.UNRESOLVED ) { + reload = this.service.isBundleUsed(event.getBundle().getBundleId()); + } else { + reload = false; + } + if ( reload ) { + this.unregisterManagerFactory(); + this.registerManagerFactory(); + } } } } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
