You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ng...@apache.org on 2006/09/25 02:02:38 UTC

svn commit: r449527 - /webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/BaseDispatch.java

Author: ngallardo
Date: Sun Sep 24 17:02:37 2006
New Revision: 449527

URL: http://svn.apache.org/viewvc?view=rev&rev=449527
Log:
AXIS2-1212
Contributor: Samuel Isokpunwu

Sam's patch to catch some issues with null input params on the Dispatch.

Modified:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/BaseDispatch.java

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/BaseDispatch.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/BaseDispatch.java?view=diff&rev=449527&r1=449526&r2=449527
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/BaseDispatch.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/BaseDispatch.java Sun Sep 24 17:02:37 2006
@@ -28,6 +28,7 @@
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.jaxws.AxisController;
 import org.apache.axis2.jaxws.BindingProvider;
+import org.apache.axis2.jaxws.ExceptionFactory;
 import org.apache.axis2.jaxws.core.InvocationContext;
 import org.apache.axis2.jaxws.core.InvocationContextFactory;
 import org.apache.axis2.jaxws.core.MessageContext;
@@ -104,6 +105,9 @@
             log.debug("Entered synchronous invocation: BaseDispatch.invoke()");
         }
         
+        //Check for valid invocation parameter
+        obj = validateInvocationParam(obj);
+        
         // Create the InvocationContext instance for this request/response flow.
         InvocationContext invocationContext = InvocationContextFactory.createInvocationContext(null);
         invocationContext.setServiceClient(serviceClient);
@@ -140,6 +144,9 @@
         if (log.isDebugEnabled()) { 
             log.debug("Entered one-way invocation: BaseDispatch.invokeOneWay()");
         }
+        
+        //Check for valid invocation parameter
+        obj = validateInvocationParam(obj);
        
         // Create the InvocationContext instance for this request/response flow.
         InvocationContext invocationContext = InvocationContextFactory.createInvocationContext(null);
@@ -172,6 +179,9 @@
             log.debug("Entered asynchronous (callback) invocation: BaseDispatch.invokeAsync()");
         }
         
+        //Check for valid invocation parameter
+        obj = validateInvocationParam(obj);
+        
         // Create the InvocationContext instance for this request/response flow.
         InvocationContext invocationContext = InvocationContextFactory.createInvocationContext(null);
         invocationContext.setServiceClient(serviceClient);
@@ -275,5 +285,37 @@
                 msg.setMTOMEnabled(true);
         }
     }
-
+    
+    /**
+     * Validate invocation parameter value.
+     * @param object
+     * @return object
+     */
+    private Object validateInvocationParam(Object object){
+    	Object obj = object;
+    	String bindingId = port.getBindingID();
+    	
+    	try {
+    		if(bindingId.equalsIgnoreCase(SOAPBinding.SOAP11HTTP_BINDING) ||
+    		   bindingId.equalsIgnoreCase(SOAPBinding.SOAP11HTTP_MTOM_BINDING)){
+    			if(mode.toString().equalsIgnoreCase(Mode.PAYLOAD.toString()) && object == null){
+    				//TODO Per JAXWS 2.0 Specification in Section 4.3.2, may need to send a soap
+    				//     message with empty body. For now, implementation will through a
+    				//     NullPointerException wrapped in WebServiceException
+    				throw new NullPointerException("Error: Dispatch invocation value is NULL");
+    			}
+    		}
+    		else if(object == null){
+    			throw new NullPointerException("Error: Dispatch invocation value is NULL");
+    		}
+    	}
+    	catch(NullPointerException npe){
+    		throw ExceptionFactory.makeWebServiceException(npe);
+    	}
+    	catch(Exception e){
+    		throw ExceptionFactory.makeWebServiceException(e);
+    	}
+    	
+    	return obj;
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org