[ 
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.

Reply via email to