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