You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by gn...@apache.org on 2007/01/10 23:09:38 UTC
svn commit: r495006 - in
/incubator/ode/trunk/jbi/src/main/java/org/apache/ode/jbi: OdeConsumer.java
OdeService.java msgmap/DocLitMapper.java
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();