Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2005-01-13 05:38:06 +0000
committerslewis2005-01-13 05:38:06 +0000
commit10bde74edb4d67ed0abcec745369547e85a62dfc (patch)
treea2333c4b57dcde18acbe41b1f8e652ab32133068
parent81a75dd565634865aae166901c64c03a219e2385 (diff)
downloadorg.eclipse.ecf-10bde74edb4d67ed0abcec745369547e85a62dfc.tar.gz
org.eclipse.ecf-10bde74edb4d67ed0abcec745369547e85a62dfc.tar.xz
org.eclipse.ecf-10bde74edb4d67ed0abcec745369547e85a62dfc.zip
Updates to exception handling to provide more information
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java8
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOManager.java19
2 files changed, 18 insertions, 9 deletions
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java
index 1964e1024..91df01c63 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java
@@ -266,16 +266,16 @@ public abstract class SOContainer implements ISharedObjectContainer {
return s;
}
- protected ISharedObject addSharedObjectAndWait(SharedObjectDescription sd,
+ protected void addSharedObjectAndWait(SharedObjectDescription sd,
ISharedObject s, ISharedObjectContainerTransaction t)
throws Exception {
- if (sd.getID() == null || s == null)
- return null;
+ if (sd.getID() == null || s == null) {
+ throw new SharedObjectAddException("Object id is null, or instance is null");
+ }
ISharedObject so = addSharedObject0(sd, s);
// Wait right here until committed
if (t != null)
t.waitToCommit();
- return s;
}
protected void addSharedObjectWrapper(SOWrapper wrapper) throws Exception {
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOManager.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOManager.java
index 71c6a8282..efdded9d4 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOManager.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOManager.java
@@ -149,15 +149,21 @@ public class SOManager implements ISharedObjectManager {
throws SharedObjectCreateException {
debug("createSharedObject(" + sd + "," + trans + ")");
// notify listeners
+ if (sd == null) throw new SharedObjectCreateException("SharedObjectDescription cannot be null");
+ ID sharedObjectID = sd.getID();
+ if (sharedObjectID == null) throw new SharedObjectCreateException("New object ID cannot be null");
container.fireContainerEvent(new SharedObjectManagerCreateEvent(container.getID(),sd));
ISharedObject newObject = null;
Throwable t = null;
- ID result = sd.getID();
+ ID result = sharedObjectID;
try {
newObject = loadSharedObject(sd);
- result = addSharedObject(sd.getID(), newObject, sd.getProperties(), trans);
+ result = addSharedObject(sharedObjectID, newObject, sd.getProperties(), trans);
} catch (Exception e) {
- throw new SharedObjectCreateException("Container "+container.getID()+" had exception creating shared object "+sd.getID(),t);
+ dumpStack("Exception in createSharedObject",e);
+ SharedObjectCreateException newExcept = new SharedObjectCreateException("Container "+container.getID()+" had exception creating shared object "+sharedObjectID+": "+e.getClass().getName()+": "+e.getMessage());
+ newExcept.setStackTrace(e.getStackTrace());
+ throw newExcept;
}
return result;
}
@@ -185,8 +191,11 @@ public class SOManager implements ISharedObjectManager {
container.getID(), sharedObject.getClass().getName(),
properties, 0);
container.addSharedObjectAndWait(sd, so, trans);
- } catch (Exception except) {
- throw new SharedObjectAddException("Container "+container.getID()+" had exception adding shared object "+sharedObjectID,except);
+ } catch (Exception e) {
+ dumpStack("Exception in addSharedObject",e);
+ SharedObjectAddException newExcept = new SharedObjectAddException("Container "+container.getID()+" had exception adding shared object "+sharedObjectID+": "+e.getClass().getName()+": "+e.getMessage());
+ newExcept.setStackTrace(e.getStackTrace());
+ throw newExcept;
}
// notify listeners
container.fireContainerEvent(new SharedObjectActivatedEvent(container.getID(), result, container.getGroupMemberIDs()));

Back to the top