You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by LukeH <lu...@yahoo.com> on 2007/05/29 15:06:25 UTC

Re: org.apache.activemq.openwire.v2.BaseDataStreamMarshaller error

A bit of further research:
in org.apache.activemq.openwire.OpenWireFormat.marshal there is:
.....
	            BooleanStream bs = new BooleanStream();
	            size += dsm.tightMarshal1(this, c, bs);
	            size += bs.marshalledSize(); 

                if( !sizePrefixDisabled ) {
                    dataOut.writeInt(size);
                }
                
	            dataOut.writeByte(type);            
	            bs.marshal(dataOut);
	            dsm.tightMarshal2(this, c, dataOut, bs);
.....

the problem seems to be that c (second parameter of tightMarshal*) can
change between tightMarshal1 and tightMarshal2. It is a race condition.
What I particulary did was setting a password for a ConnectionInfo to null
in a BrokerFilter#processDispatch. Maybe I shoud synchronize on something
there but I don't know on what.
-- 
View this message in context: http://www.nabble.com/org.apache.activemq.openwire.v2.BaseDataStreamMarshaller-error-tf3631400s2354.html#a10853744
Sent from the ActiveMQ - User mailing list archive at Nabble.com.