[ https://issues.apache.org/jira/browse/TUSCANY-1802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Simon Laws reassigned TUSCANY-1802: ----------------------------------- Assignee: Simon Laws (was: Venkatakrishnan) > RMI Implementation Error Handling lost inner exception's detail information > --------------------------------------------------------------------------- > > Key: TUSCANY-1802 > URL: https://issues.apache.org/jira/browse/TUSCANY-1802 > Project: Tuscany > Issue Type: Bug > Components: Java SCA Java Implementation Extension > Reporter: Yang Sun > Assignee: Simon Laws > Fix For: Java-SCA-Next > > Attachments: 1802.patch > > > Here is an email I sent to the tuscany user group. Raymond Feng confirms it > may be a potential bug. Please have a look. > /-------------------------------------- > Hi, > I am a new user of Tuscany and I am very excited with this great software. I > am trying to introduce it into my project and currently I am evaluate it with > every possible situations. > Currently, I met a small problem with the spring implementation. I am not > sure if I understand the background and configure the composites right. > Please correct me if I make anything wrong. > The problem I met is that I cannot get the detailed original exception when > the server-side throw any kinds of exceptions. After a rough looking at the > src code and debugging, I see the following code in SpringInvoker.java : > ----------------------------------------------------------------------- > private Object doInvoke(Object payload) throws SpringInvocationException { > if (theMethod == null) > setupMethod(); > if (badInvoker) > throw new SpringInvocationException("Spring invoker incorrectly > configured"); > // Invoke the method on the Spring bean using the payload, returning > the results > try { > Object ret; > if (payload != null && !payload.getClass().isArray()) { > ret = theMethod.invoke(bean, payload); > } else { > ret = theMethod.invoke(bean, (Object[])payload); > } > return ret; > } catch (InvocationTargetException e) { > throw new SpringInvocationException(e.getMessage()); > } catch (Exception e) { > throw new SpringInvocationException(e.getMessage()); > } > } // end method doInvoke > ------------------------------------------------------------------------ > When the invoked method throw an exception (checked or unchecked), the > program flow will go to the InvocationTargetException exception handler. Then > the program only put the message of the original message to the wrapper > exception SpringInvocationException. The detailed information of the original > exception is missing. I am thinking it is here that will lost the detailed > information of the original exception detail. > The reason for me to bring this question is that if we cannot get the > detailed information of the original exception, how can we deal with the > application exceptions (such as NotEnoughMoneyException)? The only thing I > can get is the java.lang.reflect.InvocationTargetException wrapped in > java.rmi.UnexpectedException. And with those information, I cannot get the > right information to make the further decision in the program. > I am not sure whether I got the right point or if I misunderstand anything. > Please give me some suggestions on this problem. > Best Regards, > Yang Sun > --------------------------------------------------------------------------------/ -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]