You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by no...@apache.org on 2011/03/11 13:21:43 UTC
svn commit: r1080545 -
/aries/trunk/util/src/main/java/org/apache/aries/util/internal/DefaultWorker.java
Author: not
Date: Fri Mar 11 12:21:42 2011
New Revision: 1080545
URL: http://svn.apache.org/viewvc?rev=1080545&view=rev
Log:
ARIES-608 Cope with the current Bundle not having a BundleContext during static initialization.
Modified:
aries/trunk/util/src/main/java/org/apache/aries/util/internal/DefaultWorker.java
Modified: aries/trunk/util/src/main/java/org/apache/aries/util/internal/DefaultWorker.java
URL: http://svn.apache.org/viewvc/aries/trunk/util/src/main/java/org/apache/aries/util/internal/DefaultWorker.java?rev=1080545&r1=1080544&r2=1080545&view=diff
==============================================================================
--- aries/trunk/util/src/main/java/org/apache/aries/util/internal/DefaultWorker.java (original)
+++ aries/trunk/util/src/main/java/org/apache/aries/util/internal/DefaultWorker.java Fri Mar 11 12:21:42 2011
@@ -36,8 +36,22 @@ import org.osgi.framework.FrameworkUtil;
public class DefaultWorker implements FrameworkUtilWorker, BundleListener, FrameworkListener
{
private Map<Bundle, ClassLoader> classLoaders = new IdentityHashMap<Bundle, ClassLoader>();
- private static final Bundle myFrameworkBundle = FrameworkUtil.getBundle(DefaultWorker.class).getBundleContext().getBundle(0);
+ private static final Bundle myFrameworkBundle;
+ static
+ {
+ BundleContext myContext = FrameworkUtil.getBundle(DefaultWorker.class).getBundleContext();
+
+ // This may be created during framework shutdown when the bundle context is null.
+ // So we need to cope and not NPE during construction.
+ if (myContext != null) {
+ myFrameworkBundle = myContext.getBundle(0);
+ } else {
+ myFrameworkBundle = null;
+ }
+ }
+
+
public ClassLoader getClassLoader(final Bundle b)
{
ClassLoader cl = get(b);