Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2015-12-11 01:08:47 +0000
committerslewis2015-12-11 01:08:47 +0000
commite68d04a685f9d41839eca55011eadc370dd77d17 (patch)
treebd7e0a9d37a8d4991722f822f0bd8c620e486f7b /framework/bundles/org.eclipse.ecf
parent3aedd7c2e8ef4c5a33c5dcc5fd0736958a815fe4 (diff)
downloadorg.eclipse.ecf-e68d04a685f9d41839eca55011eadc370dd77d17.tar.gz
org.eclipse.ecf-e68d04a685f9d41839eca55011eadc370dd77d17.tar.xz
org.eclipse.ecf-e68d04a685f9d41839eca55011eadc370dd77d17.zip
Diffstat (limited to 'framework/bundles/org.eclipse.ecf')
-rw-r--r--framework/bundles/org.eclipse.ecf/.options2
-rw-r--r--framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/BundleClassResolver.java4
-rw-r--r--framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/ClassResolverObjectInputStream.java19
-rw-r--r--framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/internal/core/ECFDebugOptions.java1
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$
}

Back to the top