You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by am...@apache.org on 2010/02/27 14:03:58 UTC

svn commit: r916949 - /axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java

Author: amilas
Date: Sat Feb 27 13:03:58 2010
New Revision: 916949

URL: http://svn.apache.org/viewvc?rev=916949&view=rev
Log:
commit the patch for SANDESHA2-199

Modified:
    axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java

Modified: axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java?rev=916949&r1=916948&r2=916949&view=diff
==============================================================================
--- axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java (original)
+++ axis/axis2/java/sandesha/trunk/modules/core/src/main/java/org/apache/sandesha2/util/FaultManager.java Sat Feb 27 13:03:58 2010
@@ -1079,7 +1079,20 @@
 							
 							((AxisCallback)callback).onError(fault);
 						}
-					}
+					 // this is actually to support synapse. Synpase Axis Operation does not have a callBackMessageReceiver
+                     // synapse AxisOperation always has the synapse message receiver. And also to be send in the synapse
+                     // fault mediators we need to set the SENDING_FAULT property as well.
+                    } else if (msgReceiver != null) {
+                        try {
+                            //since there is no reponse we set this message as the fault reply
+                            context.getOptions().setRelationships(new RelatesTo[]{new RelatesTo(context.getMessageID())});
+                            context.setProperty("SENDING_FAULT", Boolean.TRUE);
+                            msgReceiver.receive(context);
+                        } catch (AxisFault axisFault) {
+                            log.error(axisFault.getMessage());
+                            throw new SandeshaException("Can not invoke the message receiver ", axisFault);
+                        }
+                    }
 				}
 			}
 		}