Author: gnodet Date: Wed Jan 10 14:09:37 2007 New Revision: 495006 URL: http://svn.apache.org/viewvc?view=rev&rev=495006 Log: Fix compilation problem. Improve error handling.
Modified: incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeService.java incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/msgmap/DocLitMapper.java Modified: incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java?view=diff&rev=495006&r1=495005&r2=495006 ============================================================================== --- incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java (original) +++ incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java Wed Jan 10 14:09:37 2007 @@ -25,6 +25,7 @@ import org.apache.ode.jbi.msgmap.Mapper; import org.apache.ode.jbi.msgmap.MessageTranslationException; +import java.util.Collection; import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; @@ -207,7 +208,7 @@ try { Fault jbiFlt = jbiMex.getFault(); if (jbiFlt != null) { - javax.wsdl.Fault wsdlFlt = mapper.toFaultType(jbiFlt,pmex.getOperation().getFaults().values()); + javax.wsdl.Fault wsdlFlt = mapper.toFaultType(jbiFlt, (Collection<javax.wsdl.Fault>) pmex.getOperation().getFaults().values()); if (wsdlFlt == null) { pmex.replyWithFailure(FailureType.FORMAT_ERROR, "Unrecognized fault message.", null); } else { Modified: incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeService.java URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeService.java?view=diff&rev=495006&r1=495005&r2=495006 ============================================================================== --- incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeService.java (original) +++ incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/OdeService.java Wed Jan 10 14:09:37 2007 @@ -264,6 +264,7 @@ jbiMex.setError(new Exception("MEXFailure")); jbiMex.setStatus(ExchangeStatus.ERROR); // TODO: get failure codes out of the message. + _ode.getChannel().send(jbiMex); } catch (MessagingException ex) { __log.fatal("Error bridging ODE out response: ", ex); } @@ -290,10 +291,10 @@ } catch (MessagingException ex) { __log.error("Error bridging ODE out response: ", ex); - inout.setError(ex); + sendError(jbiMex, ex); } catch (MessageTranslationException e) { __log.error("Error translating ODE message " + mex.getResponse() + " to NMS format!", e); - inout.setError(e); + sendError(jbiMex, e); } } @@ -317,10 +318,19 @@ _ode.getChannel().send(inout); } catch (MessagingException e) { __log.error("Error bridging ODE fault response: ", e); - inout.setError(e); + sendError(jbiMex, e); } catch (MessageTranslationException mte) { __log.error("Error translating ODE fault message " + mex.getFaultResponse() + " to NMS format!", mte); - inout.setError(mte); + sendError(jbiMex, mte); + } + } + + private void sendError(javax.jbi.messaging.MessageExchange jbiMex, Exception error) { + try { + jbiMex.setError(error); + _ode.getChannel().send(jbiMex); + } catch (Exception e) { + __log.error("Error sending ERROR status: ", e); } } Modified: incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/msgmap/DocLitMapper.java URL: http://svn.apache.org/viewvc/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/msgmap/DocLitMapper.java?view=diff&rev=495006&r1=495005&r2=495006 ============================================================================== --- incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/msgmap/DocLitMapper.java (original) +++ incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi/msgmap/DocLitMapper.java Wed Jan 10 14:09:37 2007 @@ -86,6 +86,12 @@ Part partdef = (Part) msgdef.getParts().values().iterator().next(); assert partdef.getElementName() != null : "non-element part!"; + if (odeMsg.getMessage() == null) { + String errmsg = "Unknown fault: " + odeMsg.getType(); + __log.debug(errmsg); + throw new MessageTranslationException(errmsg); + } + Element part = DOMUtils.findChildByName(odeMsg.getMessage(),new QName(null, partdef.getName())); if (part == null) { String errmsg = "ODE message did not contain expected part: " + partdef.getName();