[ 
https://issues.apache.org/jira/browse/TUSCANY-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ant elder closed TUSCANY-3698.
------------------------------

    Resolution: Fixed

Now also  committed to 1.x and the 1.6.1 branch so should be in 1.6.1 release.

> JMS Binding erases the stack trace of RuntimeException's
> --------------------------------------------------------
>
>                 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-1.5, Java-SCA-1.5.1, Java-SCA-1.6, 
> Java-SCA-2.0-M1,  Java-SCA-2.0-M2, Java-SCA-2.0-M3, Java-SCA-2.0-M4, 
> Java-SCA-2.0-M5
>         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
>
>         Attachments: 3698.padraig.ver2.patch, 3698.skurz.patch, 
> Patch_TUSCANY-3698
>
>
> In the file 
> org.apache.tuscany.sca.binding.jms.provider.AbstractMessageProcessor there is 
> a method createFaultMessage(), this method creates a JMS fault message from 
> an exception that is passed into the method.
> However if the messages is a RuntimeException 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