Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2005-06-14 07:03:58 +0000
committerslewis2005-06-14 07:03:58 +0000
commite286070f93364ca3867e4f9db8c1c0a8ec599dd1 (patch)
treedf44d181e1ae638ca4e82c040d360930665c7870
parentb9de1efef0f8b938e5bccbcfb06ade615dfd517f (diff)
downloadorg.eclipse.ecf-e286070f93364ca3867e4f9db8c1c0a8ec599dd1.tar.gz
org.eclipse.ecf-e286070f93364ca3867e4f9db8c1c0a8ec599dd1.tar.xz
org.eclipse.ecf-e286070f93364ca3867e4f9db8c1c0a8ec599dd1.zip
Fixed bug in deserialization of shared object messages where shared object does not yet exist. Deserialization of message only occurs if shared object actually present to receive it
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java17
1 files changed, 6 insertions, 11 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 33522e5cb..1b949da8a 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
@@ -740,25 +740,20 @@ public abstract class SOContainer implements ISharedObjectContainer {
debug("handleSharedObjectMessage:" + mess);
ID fromID = mess.getFromContainerID();
ID toID = mess.getToContainerID();
- long seq = mess.getSequence();
ContainerMessage.SharedObjectMessage resp = (ContainerMessage.SharedObjectMessage) mess
.getData();
- // Get bytes from SharedObjectMessage instance
- byte [] databytes = (byte []) resp.getData();
- Serializable obj = null;
- try {
- obj = (Serializable) deserializeSharedObjectMessage(databytes);
- } catch (ClassNotFoundException e) {
- dumpStack("Classnotfoundexception in handleSharedObjectMessage",e);
- e.printStackTrace(System.err);
- }
synchronized (getGroupMembershipLock()) {
if (toID == null || toID.equals(getID())) {
SOWrapper sow = getSharedObjectWrapper(resp
.getFromSharedObjectID());
if (sow != null) {
- sow.deliverSharedObjectMessage(fromID, obj);
+ try {
+ sow.deliverSharedObjectMessage(fromID, (Serializable) deserializeSharedObjectMessage((byte []) resp.getData()));
+ } catch (ClassNotFoundException e) {
+ dumpStack("Classnotfoundexception in handleSharedObjectMessage",e);
+ e.printStackTrace(System.err);
+ }
}
}
forward(fromID, toID, mess);

Back to the top