diff options
author | slewis | 2015-12-11 01:08:47 +0000 |
---|---|---|
committer | slewis | 2015-12-11 01:08:47 +0000 |
commit | e68d04a685f9d41839eca55011eadc370dd77d17 (patch) | |
tree | bd7e0a9d37a8d4991722f822f0bd8c620e486f7b /framework/bundles/org.eclipse.ecf | |
parent | 3aedd7c2e8ef4c5a33c5dcc5fd0736958a815fe4 (diff) | |
download | org.eclipse.ecf-e68d04a685f9d41839eca55011eadc370dd77d17.tar.gz org.eclipse.ecf-e68d04a685f9d41839eca55011eadc370dd77d17.tar.xz org.eclipse.ecf-e68d04a685f9d41839eca55011eadc370dd77d17.zip |
Change-Id: I7d1f725d48ae0efea6ee9e1cc2ecc75337e37588
Diffstat (limited to 'framework/bundles/org.eclipse.ecf')
4 files changed, 15 insertions, 11 deletions
diff --git a/framework/bundles/org.eclipse.ecf/.options b/framework/bundles/org.eclipse.ecf/.options index ecd0c0495..aa33548cb 100644 --- a/framework/bundles/org.eclipse.ecf/.options +++ b/framework/bundles/org.eclipse.ecf/.options @@ -14,3 +14,5 @@ org.eclipse.ecf/debug/exceptions/throwing=false org.eclipse.ecf/debug/methods/entering=false # Trace when methods are exited org.eclipse.ecf/debug/methods/exiting=false + +org.eclipse.ecf/debug/bundleclassresolver=true diff --git a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/BundleClassResolver.java b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/BundleClassResolver.java index 5b31e56f9..01db8696c 100644 --- a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/BundleClassResolver.java +++ b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/BundleClassResolver.java @@ -10,6 +10,8 @@ package org.eclipse.ecf.core.util; import java.io.ObjectStreamClass; import org.eclipse.core.runtime.Assert; +import org.eclipse.ecf.internal.core.ECFDebugOptions; +import org.eclipse.ecf.internal.core.ECFPlugin; import org.osgi.framework.Bundle; /** @@ -31,6 +33,8 @@ public class BundleClassResolver implements IClassResolver { public Class<?> resolveClass(ObjectStreamClass desc) throws ClassNotFoundException { + Trace.trace(ECFPlugin.PLUGIN_ID, ECFDebugOptions.BUNDLECLASSRESOLVER, this.getClass(), "resolveClass", "bundle=" + this.bundle + ",class=" + desc); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + verifyClass(desc); try { diff --git a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/ClassResolverObjectInputStream.java b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/ClassResolverObjectInputStream.java index 1a3cd27b0..3445a3398 100644 --- a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/ClassResolverObjectInputStream.java +++ b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/ClassResolverObjectInputStream.java @@ -43,7 +43,7 @@ public class ClassResolverObjectInputStream extends ObjectInputStream { } public static ObjectInputStream create(BundleContext ctxt, InputStream ins) throws IOException { - return create(ctxt, ins, null); + return create(ctxt, ins, "(" + IClassResolver.BUNDLE_PROP_NAME + "=" + ctxt.getBundle().getSymbolicName() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } private final BundleContext bundleContext; @@ -82,23 +82,20 @@ public class ClassResolverObjectInputStream extends ObjectInputStream { return this.bundleContext; } - private IClassResolver getClassResolver() { + @SuppressWarnings("unused") + @Override + protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { synchronized (trackerLock) { if (classResolverST == null) { classResolverST = new ServiceTracker<IClassResolver, IClassResolver>(this.bundleContext, classResolverFilter, null); classResolverST.open(); } } - return this.classResolverST.getService(); - } - - @SuppressWarnings("unused") - @Override - protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { - IClassResolver classResolver = getClassResolver(); - if (classResolver != null) + IClassResolver classResolver = this.classResolverST.getService(); + if (classResolver != null) { return classResolver.resolveClass(desc); - throw new ClassNotFoundException("Cannot deserialize class description=" + desc + " because no OSGi IClassResolver registered"); //$NON-NLS-1$ //$NON-NLS-2$ + } + throw new ClassNotFoundException("Cannot deserialize class=" + desc + " because no IClassResolver service available"); //$NON-NLS-1$ //$NON-NLS-2$ } public static Class<?> resolvePrimitiveClass(ObjectStreamClass desc, ClassNotFoundException cnfe) throws ClassNotFoundException { diff --git a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/internal/core/ECFDebugOptions.java b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/internal/core/ECFDebugOptions.java index 32d5ca9c2..595f32ad3 100644 --- a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/internal/core/ECFDebugOptions.java +++ b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/internal/core/ECFDebugOptions.java @@ -20,4 +20,5 @@ public interface ECFDebugOptions { public static final String METHODS_EXITING = DEBUG + "/methods/exiting"; //$NON-NLS-1$ + public static final String BUNDLECLASSRESOLVER = DEBUG + "/bundleclassresolver"; //$NON-NLS-1$ } |