[jboss-svn-commits] JBL Code SVN: r23551 - in labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta: src/org/jboss/internal/soa/esb/message/format/xml and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Oct 22 10:28:32 EDT 2008
Author: kevin.conner at jboss.com
Date: 2008-10-22 10:28:32 -0400 (Wed, 22 Oct 2008)
New Revision: 23551
Modified:
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/message/Body.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java
labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java
Log:
Handle concurrent access to messages: JBESB-2113
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -42,7 +42,10 @@
public Object get(String name)
{
- return SerializedValueImpl.unwrap(_table.get(name));
+ synchronized(_table)
+ {
+ return SerializedValueImpl.unwrap(_table.get(name));
+ }
}
public Object put(String name, Object value)
@@ -50,30 +53,45 @@
if (value instanceof Serializable)
{
final Serializable wrapped = SerializedValueImpl.wrap((Serializable)value) ;
- final Serializable previous = _table.put(name, wrapped) ;
- return SerializedValueImpl.unwrap(previous);
+ synchronized(_table)
+ {
+ final Serializable previous = _table.put(name, wrapped) ;
+ return SerializedValueImpl.unwrap(previous);
+ }
}
throw new IllegalArgumentException("value must be Serializable");
}
public Object remove(String name)
{
- return SerializedValueImpl.unwrap(_table.remove(name));
+ synchronized(_table)
+ {
+ return SerializedValueImpl.unwrap(_table.remove(name));
+ }
}
public String[] getNames()
{
- return _table.keySet().toArray(new String[_table.size()]);
+ synchronized(_table)
+ {
+ return _table.keySet().toArray(new String[_table.size()]);
+ }
}
public Object itemAt(int index) throws IndexOutOfBoundsException
{
- return SerializedValueImpl.unwrap(_list.get(index));
+ synchronized(_list)
+ {
+ return SerializedValueImpl.unwrap(_list.get(index));
+ }
}
public Object removeItemAt(int index) throws IndexOutOfBoundsException
{
- return SerializedValueImpl.unwrap(_list.remove(index));
+ synchronized(_list)
+ {
+ return SerializedValueImpl.unwrap(_list.remove(index));
+ }
}
public Object replaceItemAt(int index, Object value) throws IndexOutOfBoundsException
@@ -81,8 +99,11 @@
if (value instanceof Serializable)
{
final Serializable wrapped = SerializedValueImpl.wrap((Serializable)value) ;
- final Serializable previous = _list.set(index, wrapped) ;
- return SerializedValueImpl.unwrap(previous);
+ synchronized(_list)
+ {
+ final Serializable previous = _list.set(index, wrapped) ;
+ return SerializedValueImpl.unwrap(previous);
+ }
}
throw new IllegalArgumentException("value must be Serializable");
}
@@ -90,7 +111,10 @@
public void addItem(Object value)
{
if (value instanceof Serializable)
- _list.add(SerializedValueImpl.wrap((Serializable)value)) ;
+ synchronized(_list)
+ {
+ _list.add(SerializedValueImpl.wrap((Serializable)value)) ;
+ }
else
throw new IllegalArgumentException("value must be Serializable");
}
@@ -98,27 +122,43 @@
public void addItemAt(int index, Object value) throws IndexOutOfBoundsException
{
if (value instanceof Serializable)
- _list.add(index, SerializedValueImpl.wrap((Serializable)value));
+ synchronized(_list)
+ {
+ _list.add(index, SerializedValueImpl.wrap((Serializable)value));
+ }
else
throw new IllegalArgumentException("value must be Serializable");
}
public int getNamedCount()
{
- return _table.size();
+ synchronized(_table)
+ {
+ return _table.size();
+ }
}
public int getUnnamedCount()
{
- return _list.size();
+ synchronized(_list)
+ {
+ return _list.size();
+ }
}
public String toString()
{
- return new StringBuilder()
- .append("attachments: [ Named:").append(_table.toString())
- .append(", Unnamed:").append(_list.toString())
- .toString()+" ]";
+ final String tableVal ;
+ synchronized(_table)
+ {
+ tableVal = _table.toString() ;
+ }
+ final String listVal ;
+ synchronized(_list)
+ {
+ listVal = _list.toString() ;
+ }
+ return "attachments: [ Named:" + tableVal + ", Unnamed:" + listVal +" ]";
}
private void readObject(final ObjectInputStream stream)
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -1,6 +1,8 @@
package org.jboss.internal.soa.esb.message.format.serialized;
import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Map;
@@ -70,7 +72,7 @@
add(Body.DEFAULT_LOCATION, value);
}
- public void add(String name, Object value)
+ public synchronized void add(String name, Object value)
{
AssertArgument.isNotNull(value, "value");
AssertArgument.isNotNull(name, "name");
@@ -88,14 +90,14 @@
return get(Body.DEFAULT_LOCATION);
}
- public Object get(String name)
+ public synchronized Object get(String name)
{
AssertArgument.isNotNull(name, "name");
return SerializedValueImpl.unwrap(_objects.get(name));
}
- public String[] getNames()
+ public synchronized String[] getNames()
{
final Set<String> keys = _objects.keySet() ;
return keys.toArray(new String[0]) ;
@@ -103,14 +105,17 @@
public Enumeration<String> getEnumeratedNames()
{
- return _objects.keys() ;
+ return Collections.enumeration(Arrays.asList(getNames())) ;
}
- public Object remove(String name)
+ public synchronized Object remove(String name)
{
return SerializedValueImpl.unwrap(_objects.remove(name));
}
+ /**
+ * This method is not thread safe.
+ */
public void replace(Body b)
{
if (b == null)
@@ -121,6 +126,9 @@
_objects = ((BodyImpl) b)._objects;
}
+ /**
+ * This method is not thread safe.
+ */
public void merge(Body b)
{
if (b == null)
@@ -143,18 +151,18 @@
public String toString()
{
- String toReturn = "body: [ ";
+ StringBuilder toReturn = new StringBuilder("body: [ ");
byte[] content = getByteArray();
if (content != null)
- toReturn += "byte[]: " + Util.format(new String(content));
+ toReturn.append("byte[]: ").append(Util.format(new String(content))).append(", ");
- if (content != null)
- toReturn += ", ";
+ synchronized(this)
+ {
+ toReturn.append("objects: ").append(_objects.toString());
+ }
- toReturn += "objects: " + _objects.toString();
-
- return toReturn + " ]";
+ return toReturn.append(" ]").toString();
}
// copy constructor.
@@ -166,7 +174,7 @@
protected void initialiseMap(final Map<String, Serializable> payload)
{
- synchronized(_objects)
+ synchronized(this)
{
_objects.clear() ;
_objects.putAll(payload) ;
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -30,6 +30,9 @@
* @author mark.little at jboss.com
*/
+/**
+ * This class is not thread safe and will be duplicated during InVM operations.
+ */
public class ContextImpl implements Context, java.io.Serializable
{
/**
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -32,6 +32,8 @@
/**
* The message header. Contains such things as routing information.
+ *
+ * This class is not thread safe and will be duplicated during InVM operations.
*/
public class HeaderImpl implements Header, Serializable
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -29,7 +29,7 @@
{
private static final long serialVersionUID = 0x0;
- public Object getProperty(String name)
+ public synchronized Object getProperty(String name)
{
return SerializedValueImpl.unwrap(_table.get(name));
}
@@ -45,26 +45,29 @@
if (value instanceof Serializable)
{
final Serializable wrapped = SerializedValueImpl.wrap((Serializable)value) ;
- final Serializable previous = _table.put(name, wrapped) ;
- return SerializedValueImpl.unwrap(previous);
+ synchronized(this)
+ {
+ final Serializable previous = _table.put(name, wrapped) ;
+ return SerializedValueImpl.unwrap(previous);
+ }
}
else
throw new IllegalArgumentException("Value must be serializable");
}
- public Object remove(String name)
+ public synchronized Object remove(String name)
{
return SerializedValueImpl.unwrap(_table.remove(name));
}
- public int size() {return _table.size(); }
+ public synchronized int size() {return _table.size(); }
- public String[] getNames()
+ public synchronized String[] getNames()
{
return _table.keySet().toArray(new String[0]);
}
- public String toString()
+ public synchronized String toString()
{
return "properties: [ "+_table.toString()+" ]";
}
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -23,7 +23,7 @@
import java.io.Serializable;
import java.util.ArrayList;
-import java.util.Hashtable;
+import java.util.HashMap;
import java.util.Map.Entry;
import javax.xml.namespace.QName;
@@ -66,70 +66,111 @@
public Object get(String name)
{
- return unwrap(_table.get(name));
+ synchronized(_table)
+ {
+ return unwrap(_table.get(name));
+ }
}
public Object put(String name, Object value)
{
assertValidAttachment(value);
- return unwrap(_table.put(name, new SerializedValueImpl((Serializable) value)));
+ synchronized(_table)
+ {
+ return unwrap(_table.put(name, new SerializedValueImpl((Serializable) value)));
+ }
}
public Object remove(String name)
{
- return unwrap(_table.remove(name));
+ synchronized(_table)
+ {
+ return unwrap(_table.remove(name));
+ }
}
public String[] getNames()
{
- return _table.keySet().toArray(new String[0]);
+ synchronized(_table)
+ {
+ return _table.keySet().toArray(new String[0]);
+ }
}
public Object itemAt(int index) throws IndexOutOfBoundsException
{
- return unwrap(_list.get(index));
+ synchronized(_list)
+ {
+ return unwrap(_list.get(index));
+ }
}
public Object removeItemAt(int index) throws IndexOutOfBoundsException
{
- return unwrap(_list.remove(index));
+ synchronized(_list)
+ {
+ return unwrap(_list.remove(index));
+ }
}
public Object replaceItemAt(int index, Object value)
throws IndexOutOfBoundsException
{
assertValidAttachment(value);
- return unwrap(_list.set(index, new SerializedValueImpl((Serializable) value)));
+ synchronized(_list)
+ {
+ return unwrap(_list.set(index, new SerializedValueImpl((Serializable) value)));
+ }
}
public void addItem(Object value)
{
assertValidAttachment(value);
- _list.add(new SerializedValueImpl((Serializable) value));
+ synchronized(_list)
+ {
+ _list.add(new SerializedValueImpl((Serializable) value));
+ }
}
public void addItemAt(int index, Object value)
throws IndexOutOfBoundsException
{
assertValidAttachment(value);
- _list.add(index, new SerializedValueImpl((Serializable) value));
+ synchronized(_list)
+ {
+ _list.add(index, new SerializedValueImpl((Serializable) value));
+ }
}
public int getNamedCount()
{
- return _table.size();
+ synchronized(_table)
+ {
+ return _table.size();
+ }
}
public int getUnnamedCount()
{
- return _list.size();
+ synchronized(_list)
+ {
+ return _list.size();
+ }
}
public String toString()
{
- return new StringBuilder().append("attachments: [ Named:").append(
- _table.toString()).append(", Unnamed:").append(_list.toString())
- .toString()+" ]";
+ final String tableVal ;
+ synchronized(_table)
+ {
+ tableVal = _table.toString() ;
+ }
+ final String listVal ;
+ synchronized (_list)
+ {
+ listVal = _list.toString() ;
+ }
+ return "attachments: [ Named:" + tableVal + ", Unnamed:" + listVal + " ]";
}
/**
@@ -141,19 +182,25 @@
protected void writeChildContent(XMLStreamWriter out)
throws XMLStreamException
{
- for (SerializedValueImpl value : _list)
+ synchronized(_list)
{
- final TextElement unnamed = new TextElement(value.getSerialisedForm()) ;
- StreamHelper.writeElement(out, XMLUtil.ESB_QNAME_ATTACHMENT_UNNAMED, unnamed) ;
+ for (SerializedValueImpl value : _list)
+ {
+ final TextElement unnamed = new TextElement(value.getSerialisedForm()) ;
+ StreamHelper.writeElement(out, XMLUtil.ESB_QNAME_ATTACHMENT_UNNAMED, unnamed) ;
+ }
}
- for (Entry<String, SerializedValueImpl> entry : _table.entrySet())
+ synchronized(_table)
{
- final TextElement named = new TextElement(entry.getValue().getSerialisedForm()) ;
- final String origNamedURI = StreamHelper.writeStartElement(out, XMLUtil.ESB_QNAME_ATTACHMENT_NAMED) ;
- StreamHelper.writeAttribute(out, XMLUtil.ESB_QNAME_ATTRIBUTE_ATTACHMENT_NAMED_NAME, entry.getKey()) ;
- named.writeContent(out) ;
- StreamHelper.writeEndElement(out, XMLUtil.ESB_QNAME_ATTACHMENT_NAMED.getPrefix(), origNamedURI) ;
+ for (Entry<String, SerializedValueImpl> entry : _table.entrySet())
+ {
+ final TextElement named = new TextElement(entry.getValue().getSerialisedForm()) ;
+ final String origNamedURI = StreamHelper.writeStartElement(out, XMLUtil.ESB_QNAME_ATTACHMENT_NAMED) ;
+ StreamHelper.writeAttribute(out, XMLUtil.ESB_QNAME_ATTRIBUTE_ATTACHMENT_NAMED_NAME, entry.getKey()) ;
+ named.writeContent(out) ;
+ StreamHelper.writeEndElement(out, XMLUtil.ESB_QNAME_ATTACHMENT_NAMED.getPrefix(), origNamedURI) ;
+ }
}
}
@@ -200,5 +247,5 @@
}
private ArrayList<SerializedValueImpl> _list = new ArrayList<SerializedValueImpl>();
- private Hashtable<String, SerializedValueImpl> _table = new Hashtable<String, SerializedValueImpl>();
+ private HashMap<String, SerializedValueImpl> _table = new HashMap<String, SerializedValueImpl>();
}
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -1,8 +1,10 @@
package org.jboss.internal.soa.esb.message.format.xml;
import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.Enumeration;
-import java.util.Hashtable;
+import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
@@ -76,7 +78,7 @@
add(Body.DEFAULT_LOCATION, value);
}
- public void add(String name, Object value)
+ public synchronized void add(String name, Object value)
{
AssertArgument.isNotNull(value, "value");
AssertArgument.isNotNull(name, "name");
@@ -89,14 +91,14 @@
return get(Body.DEFAULT_LOCATION);
}
- public Object get(String name)
+ public synchronized Object get(String name)
{
AssertArgument.isNotNull(name, "name");
return unwrap(_objects.get(name));
}
- public String[] getNames()
+ public synchronized String[] getNames()
{
Set<String> keys = _objects.keySet();
return keys.toArray(new String[0]) ;
@@ -104,10 +106,10 @@
public Enumeration<String> getEnumeratedNames()
{
- return _objects.keys() ;
+ return Collections.enumeration(Arrays.asList(getNames())) ;
}
- public Object remove(String name)
+ public synchronized Object remove(String name)
{
return unwrap(_objects.remove(name));
}
@@ -118,7 +120,7 @@
* @throws XMLStreamException For errors during output.
*/
@Override
- protected void writeChildContent(XMLStreamWriter out)
+ protected synchronized void writeChildContent(XMLStreamWriter out)
throws XMLStreamException
{
/*
@@ -215,6 +217,9 @@
return getByteArray();
}
+ /**
+ * This method is not thread safe.
+ */
public void replace(Body b)
{
if (b == null)
@@ -225,6 +230,9 @@
_objects = ((BodyImpl) b)._objects;
}
+ /**
+ * This method is not thread safe.
+ */
public void merge(Body b)
{
if (b == null)
@@ -247,21 +255,18 @@
public String toString()
{
- String toReturn = "body: [ ";
+ StringBuilder toReturn = new StringBuilder("body: [ ");
byte[] content = getByteArray();
if (content != null)
- toReturn += "byte[]: " + Util.format(new String(content));
+ toReturn.append("byte[]: ").append(Util.format(new String(content))).append(", ");
- if (_objects != null)
+ synchronized(this)
{
- if (content != null)
- toReturn += ", ";
-
- toReturn += "objects: " + _objects.toString();
+ toReturn.append("objects: ").append(_objects);
}
- return toReturn + " ]";
+ return toReturn.append(" ]").toString() ;
}
// copy constructor (almost - doesn't copy, just references).
@@ -278,7 +283,7 @@
protected void initialiseMap(final Map<String, Serializable> payload)
{
- synchronized(_objects)
+ synchronized(this)
{
_objects.clear() ;
for(Entry<String, Serializable> entry: payload.entrySet())
@@ -288,5 +293,5 @@
}
}
- private Hashtable<String, MarshalValueImpl> _objects = new Hashtable<String, MarshalValueImpl>();
+ private HashMap<String, MarshalValueImpl> _objects = new HashMap<String, MarshalValueImpl>();
}
\ No newline at end of file
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -40,6 +40,9 @@
* @author mark.little at jboss.com
*/
+/**
+ * This class is not thread safe and will be duplicated during InVM operations.
+ */
public class ContextImpl extends ElementContent implements Context
{
/**
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -32,6 +32,8 @@
/**
* The message header. Contains such things as routing information.
+ *
+ * This class is not thread safe and will be duplicated during InVM operations.
*/
public class HeaderImpl extends ElementContent implements Header
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -21,7 +21,7 @@
package org.jboss.internal.soa.esb.message.format.xml;
import java.io.Serializable;
-import java.util.Hashtable;
+import java.util.HashMap;
import java.util.Map.Entry;
import javax.xml.namespace.QName;
@@ -57,7 +57,7 @@
parse(in) ;
}
- public Object getProperty(String name)
+ public synchronized Object getProperty(String name)
{
return unwrap(_table.get(name));
}
@@ -68,7 +68,7 @@
return (null == oRet) ? defaultVal : oRet;
}
- public Object setProperty(String name, Object value)
+ public synchronized Object setProperty(String name, Object value)
{
AssertArgument.isNotNull(name, "name");
AssertArgument.isNotNull(value, "value");
@@ -80,17 +80,17 @@
return unwrap(_table.put(name, new SerializedValueImpl((Serializable)value)));
}
- public Object remove(String name)
+ public synchronized Object remove(String name)
{
return unwrap(_table.remove(name));
}
- public int size()
+ public synchronized int size()
{
return _table.size();
}
- public String[] getNames()
+ public synchronized String[] getNames()
{
return _table.keySet().toArray(new String[0]);
}
@@ -101,7 +101,7 @@
* @throws XMLStreamException For errors during output.
*/
@Override
- protected void writeChildContent(XMLStreamWriter out)
+ protected synchronized void writeChildContent(XMLStreamWriter out)
throws XMLStreamException
{
for (Entry<String, SerializedValueImpl> entry: _table.entrySet())
@@ -150,7 +150,7 @@
}
}
- public String toString()
+ public synchronized String toString()
{
return "properties: [ "+_table.toString()+" ]";
}
@@ -160,6 +160,6 @@
return (value == null ? null : value.getValue()) ;
}
- private Hashtable<String, SerializedValueImpl> _table = new Hashtable<String, SerializedValueImpl>();
+ private HashMap<String, SerializedValueImpl> _table = new HashMap<String, SerializedValueImpl>();
}
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/message/Body.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/message/Body.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/message/Body.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -168,6 +168,8 @@
/**
* Replace this body instance with the one given.
*
+ * This method is not thread safe.
+ *
* @param b
* the body to be replaced with.
*/
@@ -178,6 +180,8 @@
* Merge two bodies. Any duplicate entries in the current instance will be
* lost in favour of the new instance.
*
+ * This method is not thread safe.
+ *
* @param b
* the body to be merged with.
*/
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -308,12 +308,11 @@
assertEquals(names.length, 2);
/*
- * The array comes back ordered alphabetically.
+ * The array is not ordered.
*/
+ assertTrue("Check for bar", "bar".equals(names[0]) || "bar".equals(names[1]));
+ assertTrue("Check for foo", "foo".equals(names[0]) || "foo".equals(names[1]));
- assertEquals(names[0], "bar");
- assertEquals(names[1], "foo");
-
try
{
ByteArrayOutputStream s = new ByteArrayOutputStream();
@@ -338,8 +337,11 @@
assertNotNull(names);
assertEquals(names.length, 2);
- assertEquals(names[0], "foo");
- assertEquals(names[1], "bar");
+ /*
+ * The array is not ordered.
+ */
+ assertTrue("Check for bar", "bar".equals(names[0]) || "bar".equals(names[1]));
+ assertTrue("Check for foo", "foo".equals(names[0]) || "foo".equals(names[1]));
}
catch (Exception ex)
{
Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java 2008-10-22 10:58:39 UTC (rev 23550)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java 2008-10-22 14:28:32 UTC (rev 23551)
@@ -274,12 +274,11 @@
assertEquals(names.length, 2);
/*
- * The array comes back ordered alphabetically.
+ * The array is not ordered.
*/
+ assertTrue("Check for bar", "bar".equals(names[0]) || "bar".equals(names[1]));
+ assertTrue("Check for foo", "foo".equals(names[0]) || "foo".equals(names[1]));
- assertEquals(names[0], "bar");
- assertEquals(names[1], "foo");
-
try
{
final String xmlRepresentation = msgToXML((MessageImpl)msg) ;
@@ -300,11 +299,10 @@
assertEquals(names.length, 2);
/*
- * The array comes back ordered alphabetically.
+ * The array is not ordered.
*/
-
- assertEquals(names[0], "bar");
- assertEquals(names[1], "foo");
+ assertTrue("Check for bar", "bar".equals(names[0]) || "bar".equals(names[1]));
+ assertTrue("Check for foo", "foo".equals(names[0]) || "foo".equals(names[1]));
}
catch (Exception ex)
{
More information about the jboss-svn-commits
mailing list