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.

Reply via email to