Hi Willem, threadlocal does the trick...
Thank you all for helping... best wishes, martin willem.jiang wrote: > > Hi, > > Is your MidBuffer2CanonicXML a thread safe object? > If so you can change your process method to be static. > If not, you can try to cache the object as thread local object. > > Willem > > waterback wrote: >> Thanx for helping... >> >> Well i put here my Converter's code... As you can see i had the >> "Transformer" as >> an instance variable, but there go the concurrency issues.... >> Right now i've commented it and make an instance every time right before >> transformation. >> This MidBuffer2CanonicXML-Class is the heavyweight one... >> >> i have read in documentation of the type converters that they get cached >> when defined not static... >> But can i influence camel to use a new cached instance when a new >> exchange >> gets worked at? >> >> @Converter >> public class ObjectNet2Document { >> >> // protected Transformer<MidBufferHeader, Document> transformer = >> >> >> new MidBuffer2CanonicXML(); >> @Converter >> public Document process(byte[] raw) throws Exception { >> >> int rawSize = raw.length; >> MidBufferHeader mbh = new MidBufferHeader(raw, 0, rawSize); >> Transformer<MidBufferHeader, Document> transformer = new >> MidBuffer2CanonicXML(); >> Document document = transformer.transform(mbh); >> return document; >> } >> >> } >> >> Martin >> >> >> willem.jiang wrote: >>> How did you user the TypeConverter? >>> If you can cache the CamelContext, I think you will create a new >>> TypeConverter each time. >>> BTW, >>> With the recent change of CAMEL-2392[1], CamelContext will load the >>> TypeConverter when the CamelContext is started. >>> >>> [1] https://issues.apache.org/activemq/browse/CAMEL-2392 >>> >>> Willem >>> >> > > > -- View this message in context: http://old.nabble.com/Heavyweight-Converter%3A-Caching--tp27337830p27340210.html Sent from the Camel - Users mailing list archive at Nabble.com.