diff options
| author | slewis | 2005-01-13 05:38:06 +0000 |
|---|---|---|
| committer | slewis | 2005-01-13 05:38:06 +0000 |
| commit | 10bde74edb4d67ed0abcec745369547e85a62dfc (patch) | |
| tree | a2333c4b57dcde18acbe41b1f8e652ab32133068 | |
| parent | 81a75dd565634865aae166901c64c03a219e2385 (diff) | |
| download | org.eclipse.ecf-10bde74edb4d67ed0abcec745369547e85a62dfc.tar.gz org.eclipse.ecf-10bde74edb4d67ed0abcec745369547e85a62dfc.tar.xz org.eclipse.ecf-10bde74edb4d67ed0abcec745369547e85a62dfc.zip | |
Updates to exception handling to provide more information
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())); |
