[ https://issues.apache.org/activemq/browse/CAMEL-3120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=61809#action_61809 ]
Claus Ibsen commented on CAMEL-3120: ------------------------------------ The stacktrace is now {code} Caused by: java.io.IOException: org.apache.camel.impl.DefaultExchangeHolder at org.fusesource.hawtbuf.codec.ObjectCodec.createIOException(ObjectCodec.java:60) at org.fusesource.hawtbuf.codec.ObjectCodec.decode(ObjectCodec.java:55) at org.apache.camel.component.hawtdb.HawtDBCamelCodec.unmarshallExchange(HawtDBCamelCodec.java:74) at org.apache.camel.component.hawtdb.HawtDBAggregationRepository.get(HawtDBAggregationRepository.java:159) ... 56 more Caused by: java.lang.ClassNotFoundException: org.apache.camel.impl.DefaultExchangeHolder at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at org.apache.felix.framework.ModuleImpl.searchDynamicImports(ModuleImpl.java:1484) at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:695) at org.apache.felix.framework.ModuleImpl.access$100(ModuleImpl.java:61) at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1656) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at org.fusesource.hawtbuf.codec.ObjectCodec.decode(ObjectCodec.java:51) ... 58 more {code} > hawtdb - Should wrap caused exception in wrapped IOException > ------------------------------------------------------------ > > Key: CAMEL-3120 > URL: https://issues.apache.org/activemq/browse/CAMEL-3120 > Project: Apache Camel > Issue Type: Improvement > Affects Versions: 2.4.0 > Reporter: Claus Ibsen > Assignee: Hiram Chirino > Priority: Minor > Fix For: 2.6.0 > > > The {{decode}} method in {{ObjectCodec}} should wrap the causes stacktrace in > the wrapped IOException. > For example OSGi frameworks may be pesky and we want to be able to see > whatever stacktrace it may thrown on you. > {code} > public T decode(DataInput dataIn) throws IOException { > int size = dataIn.readInt(); > byte[] data = new byte[size]; > dataIn.readFully(data); > ByteArrayInputStream bytesIn = new ByteArrayInputStream(data); > ObjectInputStream objectIn = new ObjectInputStream(bytesIn); > try { > return (T) objectIn.readObject(); > } catch (ClassNotFoundException e) { > throw new IOException(e.getMessage()); > } > } > {code} > For being JDK 1.5 compatible you need to do it like > {code} > public static IOException createIOException(String message, Throwable > cause) { > IOException answer = new IOException(message); > answer.initCause(cause); > return answer; > } > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.