Author: ruwan
Date: Mon Sep 24 22:54:51 2007
New Revision: 579081

URL: http://svn.apache.org/viewvc?rev=579081&view=rev
Log:
Fixing issue SYNAPSE-130

Modified:
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/POJOCommandMediator.java

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java?rev=579081&r1=579080&r2=579081&view=diff
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java
 Mon Sep 24 22:54:51 2007
@@ -22,10 +22,7 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.synapse.SynapseConstants;
-import org.apache.synapse.ManagedLifecycle;
-import org.apache.synapse.Mediator;
-import org.apache.synapse.MessageContext;
+import org.apache.synapse.*;
 import org.apache.synapse.core.SynapseEnvironment;
 import org.apache.synapse.mediators.AbstractMediator;
 
@@ -80,7 +77,11 @@
                                                + mediator.getClass());
                        }
                        return mediator.mediate(synCtx);
-               } finally {
+        } catch (Exception e) {
+            // throw Synapse Exception for any exception in class meditor
+            // so that the fault handler will be invoked
+            throw new SynapseException("Error occured in the mediation of the 
class mediator", e);
+        } finally {
                        if (shouldTrace) {
                                trace.trace("End : Class mediator");
                        }

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/POJOCommandMediator.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/POJOCommandMediator.java?rev=579081&r1=579080&r2=579081&view=diff
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/POJOCommandMediator.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/POJOCommandMediator.java
 Mon Sep 24 22:54:51 2007
@@ -77,42 +77,45 @@
         // instantiate the command object
         try {
             commandObject = command.newInstance();
-        } catch (InstantiationException e) {
-            handleException("Unable to instantiate the Command object", e);
-        } catch (IllegalAccessException e) {
-            handleException("Unable to instantiate the Command object", e);
-        }
 
-        // then set the properties
-        Iterator itr = properties.iterator();
-        while(itr.hasNext()) {
-            Object property = itr.next();
-            if(property instanceof OMElement) {
-                if(PropertyHelper.isStaticProperty((OMElement) property)) {
-                    PropertyHelper.setStaticProperty((OMElement) property, 
commandObject);
-                } else {
-                    PropertyHelper.setDynamicProperty((OMElement) property, 
commandObject, synCtx);
+            // then set the properties
+            Iterator itr = properties.iterator();
+            while (itr.hasNext()) {
+                Object property = itr.next();
+                if (property instanceof OMElement) {
+                    if (PropertyHelper.isStaticProperty((OMElement) property)) 
{
+                        PropertyHelper.setStaticProperty((OMElement) property, 
commandObject);
+                    } else {
+                        PropertyHelper.setDynamicProperty((OMElement) 
property, commandObject, synCtx);
+                    }
                 }
             }
-        }
 
-        // then call the execute method if the Command interface is implemented
-        if(commandObject instanceof Command) {
-            ((Command) commandObject).execute();
-        } else {
-            // use the reflection to find the execute method
-            try {
-                Method exeMethod = command.getMethod("execute", new Class[]{});
+            // then call the execute method if the Command interface is 
implemented
+            if (commandObject instanceof Command) {
+                ((Command) commandObject).execute();
+            } else {
+                // use the reflection to find the execute method
                 try {
-                    exeMethod.invoke(commandObject, new Object[]{});
-                } catch (IllegalAccessException e) {
-                    handleException("Unable to invoke the execute() method", 
e);
-                } catch (InvocationTargetException e) {
-                    handleException("Unable to invoke the execute() method", 
e);
+                    Method exeMethod = command.getMethod("execute", new 
Class[]{});
+                    try {
+                        exeMethod.invoke(commandObject, new Object[]{});
+                    } catch (IllegalAccessException e) {
+                        handleException("Unable to invoke the execute() 
method", e);
+                    } catch (InvocationTargetException e) {
+                        handleException("Unable to invoke the execute() 
method", e);
+                    }
+                } catch (NoSuchMethodException e) {
+                    // nothing to do in here (Command has no implementation)
                 }
-            } catch (NoSuchMethodException e) {
-                // nothing to do in here (Command has no implementation)
             }
+        } catch (InstantiationException e) {
+            handleException("Unable to instantiate the Command object", e);
+        } catch (IllegalAccessException e) {
+            handleException("Unable to instantiate the Command object", e);
+        } catch (Exception e) {
+            // convert any exception to SynException so that the fault handler 
will handle it
+            handleException("Error occured in the mediation of the command 
mediator", e);
         }
 
         // continue the mediator execution



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to