From f11bcbfc304c6420152cb460dca195f29c9a8373 Mon Sep 17 00:00:00 2001 From: Martin Oberhuber < martin.oberhuber@windriver.com> Date: Fri, 22 Feb 2008 15:15:56 +0000 Subject: [PATCH] [216252] Fix Systemmessage.clone() --- .../clientserver/messages/SystemMessage.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/messages/SystemMessage.java b/rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/messages/SystemMessage.java index 1657e818ba7..32fbf22d218 100644 --- a/rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/messages/SystemMessage.java +++ b/rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/messages/SystemMessage.java @@ -454,10 +454,22 @@ public class SystemMessage /** * Creates a new message with the same component, subcomponent, number, level 1 and level 2 text as this message. + *

+ * Note that only the original message is cloned, but no substitutions. The + * cloned message will look like the original object as if substitutions + * have never been made. * @see java.lang.Object#clone() */ protected Object clone() throws CloneNotSupportedException { - - return new SystemMessage(component, subComponent, messageNumber, indicator, level1NS, level2NS); + ////Old invalid code - did not work properly for subclasses + //return new SystemMessage(component, subComponent, messageNumber, indicator, level1NS, level2NS); + SystemMessage result = (SystemMessage)super.clone(); + //re-initialize substitutions to empty + result.level1WS = null; + result.level2WS = null; + result.subPrefix = '%'; + result.numSubs = -1; + result.subs = null; + return result; } }