JMS Binding erases the stack trach of runtime exceptions
--------------------------------------------------------

                 Key: TUSCANY-3698
                 URL: https://issues.apache.org/jira/browse/TUSCANY-3698
             Project: Tuscany
          Issue Type: Bug
          Components: Java SCA JMS Binding Extension
    Affects Versions: Java-SCA-2.0-M5, Java-SCA-2.0-M4, Java-SCA-2.0-M3,  
Java-SCA-2.0-M2, Java-SCA-2.0-M1, Java-SCA-1.6, Java-SCA-1.5.1, Java-SCA-1.5
         Environment: Tuscany Java SCA 1.6
Windows XP SP3
JDK 1.6
            Reporter: Padraig Myers
             Fix For: Java-SCA-2.0-M5, Java-SCA-1.6


In the file 
org.apache.tuscany.sca.binding.jms.provider.AbstractMessageProcessor there is a 
method createFaultMessage(), this method creates a JSM fault message from an 
exception.
However if the messages is a runtime exception a new exception is created 
thereby losing the stack trace from the original exception.
The offending piece of code is 
            ObjectMessage message = session.createObjectMessage();
            String causeMsg;
            if (o instanceof RuntimeException) {
                message.setObject(new ServiceRuntimeException(o.getMessage()));
            } else {
                // for a checked exception return the checked exception
                message.setObject(o);
            }
            message.setBooleanProperty(JMSBindingConstants.FAULT_PROPERTY, 
true);
            return message;

there is no reason that RuntimeException's should be treated any differently 
and therefore the code above can be replaced with
            ObjectMessage message = session.createObjectMessage();
            message.setObject(o);
            message.setBooleanProperty(JMSBindingConstants.FAULT_PROPERTY, 
true);
            return message;

This means that the component that gets this JMS message will be able to log 
the true source of the exception and not lose all the stack trace information.


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