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();