You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sc...@apache.org on 2008/08/07 16:27:47 UTC

svn commit: r683622 - in /webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws: marshaller/impl/alt/Attachment.java message/impl/MessageImpl.java

Author: scheu
Date: Thu Aug  7 07:27:46 2008
New Revision: 683622

URL: http://svn.apache.org/viewvc?rev=683622&view=rev
Log:
AXIS2-3963
Contributor:Samuel Isokpunwu and Bruce Tiffany
Prevent NPE if null data handlers are used.

Modified:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/Attachment.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/Attachment.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/Attachment.java?rev=683622&r1=683621&r2=683622&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/Attachment.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/Attachment.java Thu Aug  7 07:27:46 2008
@@ -95,7 +95,15 @@
      */
     public DataHandler getDataHandler() {
         if (dh == null) {
-            dh = createDataHandler(sigValue, sigClass, aDesc.getMimeTypes(), getContentID());
+        	//if null DH was specified explicitly, return it, don't create something else.
+            if (sigValue == null) {
+                // Create a contentID and null DataHandler
+                getContentID(); // Force setting of content id
+                dh = (DataHandler) null;
+            } else {
+                // Normal case: create a DataHandler from the sigValue object
+                dh = createDataHandler(sigValue, sigClass, aDesc.getMimeTypes(), getContentID());
+            }
         }
         return dh;
     }
@@ -123,6 +131,11 @@
         DataHandler dh = null;
         if (cls.isAssignableFrom(DataHandler.class)) {
             dh = (DataHandler) value;
+            if(dh == null)  
+            {
+                return dh; //return if DataHandler is null
+            }
+
             try {
                 Object content = dh.getContent();
                 // If the content is a Source, convert to a String due to 

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java?rev=683622&r1=683621&r2=683622&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java Thu Aug  7 07:27:46 2008
@@ -443,6 +443,10 @@
      * @see org.apache.axis2.jaxws.message.Message#getDataHandler(java.lang.String)
      */
     public DataHandler getDataHandler(String cid) {
+        // if null DH was specified explicitly, just return
+        if(cid == null) {
+            return (DataHandler) null;
+        }
         String bcid = getBlobCID(cid);
         return attachments.getDataHandler(bcid);
     }