[
https://issues.apache.org/jira/browse/TUSCANY-3698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12916566#action_12916566
]
Padraig Myers edited comment on TUSCANY-3698 at 9/30/10 1:27 PM:
-----------------------------------------------------------------
Sorry of course printStackTrace() wont work, sorry its late in the afternoon
here!
Uploaded a 2nd version of the patch incorporating your changes as well as mine.
I've tested it and it works fine.
Does it look OK?
was (Author: padraigmyers):
Sorry of course printStackTrace() wont work, sorry its late in the
afternoon here!
Uploaded a 2nd version of the patch incorporating your changes as well as mine.
I've tested it and it work fine.
Does it look OK?
> 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-1.6, Java-SCA-2.0-M5
>
> 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.