[jbossws-commits] JBossWS SVN: r14817 - in stack/native/branches/jbossws-native-3.1.2/modules: core/src/main/java/org/jboss/ws/core/client and 3 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Fri Aug 12 11:19:03 EDT 2011


Author: mmusaji
Date: 2011-08-12 11:19:03 -0400 (Fri, 12 Aug 2011)
New Revision: 14817

Added:
   stack/native/branches/jbossws-native-3.1.2/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws2651/
   stack/native/branches/jbossws-native-3.1.2/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws2651/EnvelopBuilderTestCase.java
Modified:
   stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/CommonSOAPFaultException.java
   stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/client/HTTPRemotingConnection.java
   stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
   stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderStax.java
   stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/MessageFactoryImpl.java
   stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPMessageUnMarshaller.java
   stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPMessageUnMarshallerHTTP.java
Log:
JBPAPP-6860 - set ignoreParseError to false and updated CommonSOAPFaultException to handle exception instead of just the message. HttpRemotingConnection checks if underlying cause is present in the exception and passes this back to the client

Modified: stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/CommonSOAPFaultException.java
===================================================================
--- stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/CommonSOAPFaultException.java	2011-08-12 12:40:36 UTC (rev 14816)
+++ stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/CommonSOAPFaultException.java	2011-08-12 15:19:03 UTC (rev 14817)
@@ -32,6 +32,7 @@
 {
    private QName faultCode;
    private String faultString;
+   private Throwable throwable;
 
    public CommonSOAPFaultException(QName faultCode, String faultString)
    {
@@ -41,6 +42,15 @@
       this.faultString = faultString;
    }
 
+   public CommonSOAPFaultException(QName faultCode, Throwable throwable) {
+      
+      super(throwable.getMessage(), throwable);
+      
+      this.faultCode = faultCode;
+      this.throwable = throwable;
+      
+   }
+
    public QName getFaultCode()
    {
       return faultCode;

Modified: stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/client/HTTPRemotingConnection.java
===================================================================
--- stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/client/HTTPRemotingConnection.java	2011-08-12 12:40:36 UTC (rev 14816)
+++ stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/client/HTTPRemotingConnection.java	2011-08-12 15:19:03 UTC (rev 14817)
@@ -264,7 +264,14 @@
             throw new WSTimeoutException("Timeout after: " + timeout + "ms", new Long(timeout.toString()));
          }
 
-         IOException io = new IOException("Could not transmit message");
+         IOException io = null;
+
+         if(th.getCause().getMessage() != null) {
+            io = new IOException(th.getCause().getMessage());
+         }else {
+            io = new IOException("Could not transmit message");
+         }
+
          io.initCause(th);
          throw io;
       }

Modified: stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
===================================================================
--- stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java	2011-08-12 12:40:36 UTC (rev 14816)
+++ stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java	2011-08-12 15:19:03 UTC (rev 14817)
@@ -91,7 +91,7 @@
             return null;
          }
          QName faultCode = Constants.SOAP11_FAULT_CODE_CLIENT;
-         throw new CommonSOAPFaultException(faultCode, ex.getMessage());
+         throw new CommonSOAPFaultException(faultCode, ex);
       }
 
       return build(soapMessage, domEnv);

Modified: stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderStax.java
===================================================================
--- stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderStax.java	2011-08-12 12:40:36 UTC (rev 14816)
+++ stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderStax.java	2011-08-12 15:19:03 UTC (rev 14817)
@@ -287,6 +287,10 @@
 
          SOAPBody soapBody = soapEnv.getBody();
 
+         if (soapBody == null)  {
+            soapBody = soapEnv.addBody();
+         }
+
          if (atPartMargin())
          {
             // the env:Body element

Modified: stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/MessageFactoryImpl.java
===================================================================
--- stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/MessageFactoryImpl.java	2011-08-12 12:40:36 UTC (rev 14816)
+++ stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/MessageFactoryImpl.java	2011-08-12 15:19:03 UTC (rev 14817)
@@ -288,6 +288,15 @@
          {
             envBuilder = (EnvelopeBuilder)ServiceLoader.loadService(EnvelopeBuilder.class.getName(), null);
          }
+         //if inputstream is empty, no need to build
+         if (inputStream.markSupported()) {
+        	 inputStream.mark(1);
+    		 final int bytesRead = inputStream.read(new byte[1]);
+    		 inputStream.reset();
+    		 if (bytesRead == -1) {
+    			return soapMessage;
+    		 }
+         }
 
          // Build the payload
          envBuilder.setStyle(getStyle());

Modified: stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPMessageUnMarshaller.java
===================================================================
--- stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPMessageUnMarshaller.java	2011-08-12 12:40:36 UTC (rev 14816)
+++ stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPMessageUnMarshaller.java	2011-08-12 15:19:03 UTC (rev 14817)
@@ -47,7 +47,7 @@
 
       try
       {
-         SOAPMessage soapMsg = getMessageFactory().createMessage(null, inputStream, true);
+         SOAPMessage soapMsg = getMessageFactory().createMessage(null, inputStream, false);
 
          return soapMsg;
       }

Modified: stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPMessageUnMarshallerHTTP.java
===================================================================
--- stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPMessageUnMarshallerHTTP.java	2011-08-12 12:40:36 UTC (rev 14816)
+++ stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPMessageUnMarshallerHTTP.java	2011-08-12 15:19:03 UTC (rev 14817)
@@ -79,7 +79,8 @@
          if (resCode != HttpServletResponse.SC_NO_CONTENT)
          {
             MimeHeaders mimeHeaders = getMimeHeaders(metadata);
-            soapMsg = getMessageFactory().createMessage(mimeHeaders, inputStream, true);
+            //[JBWS-2651] modify the ignoreParseError to false
+            soapMsg = getMessageFactory().createMessage(mimeHeaders, inputStream, false);
          }
 
          return soapMsg;

Added: stack/native/branches/jbossws-native-3.1.2/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws2651/EnvelopBuilderTestCase.java
===================================================================
--- stack/native/branches/jbossws-native-3.1.2/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws2651/EnvelopBuilderTestCase.java	                        (rev 0)
+++ stack/native/branches/jbossws-native-3.1.2/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws2651/EnvelopBuilderTestCase.java	2011-08-12 15:19:03 UTC (rev 14817)
@@ -0,0 +1,125 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.jbws2651;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.xml.soap.SOAPException;
+
+
+import org.jboss.ws.core.CommonSOAPFaultException;
+import org.jboss.ws.core.soap.EnvelopeBuilderDOM;
+import org.jboss.ws.core.soap.EnvelopeBuilderStax;
+import org.jboss.ws.core.soap.MessageFactoryImpl;
+import org.jboss.ws.core.soap.SOAPMessageImpl;
+
+import junit.framework.TestCase;
+
+public class EnvelopBuilderTestCase extends TestCase {
+	
+	EnvelopeBuilderDOM domBuilder = new EnvelopeBuilderDOM();
+	EnvelopeBuilderStax staxBuilder = new EnvelopeBuilderStax();
+	MessageFactoryImpl factory = new MessageFactoryImpl();
+
+	public void testEmptyInputStream() throws Exception {		
+	    InputStream ins = new ByteArrayInputStream("".getBytes());    
+		factory.createMessage(null, ins, false);
+	}
+	
+	public void testDomInputStream() throws Exception {
+		String soapMsg  =
+	         "<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>" +
+	         "  <env:Header/>" +
+	         "  <env:Body>" +
+	         "    <ns1:addItemResponse xmlns:ns1='http://org.jboss.ws/addressing/replyto'>" +
+	         "      <result>Mars Bar</result>" +
+	         "    </ns1:addItemResponse>" +
+	         "  </env:Body>" +
+	         "</env:Envelope>";
+		SOAPMessageImpl soapMessage = (SOAPMessageImpl)factory.createMessage();
+	    InputStream ins = new ByteArrayInputStream(soapMsg.getBytes());
+		assertNotNull(domBuilder.build(soapMessage, ins, false));
+	}
+	
+	
+	public void testStaxInputStream() throws Exception {
+		String soapMsg  =
+	         "<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>" +
+	         "  <env:Header/>" +
+	         "  <env:Body>" +
+	         "    <ns1:addItemResponse xmlns:ns1='http://org.jboss.ws/addressing/replyto'>" +
+	         "      <result>Mars Bar</result>" +
+	         "    </ns1:addItemResponse>" +
+	         "  </env:Body>" +
+	         "</env:Envelope>";
+		SOAPMessageImpl soapMessage = (SOAPMessageImpl)factory.createMessage();
+	    InputStream ins = new ByteArrayInputStream(soapMsg.getBytes());
+		assertNotNull(staxBuilder.build(soapMessage, ins, false));
+	}
+	
+	
+	public void testDomErroStream(){
+		String soapMsg  =
+	         "<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>" +
+	         "  <env:Header/>" +
+	         "  <env:Body>" +
+	         "    <ns1:addItemResponse xmlns:ns1='http://org.jboss.ws/addressing/replyto'>" +
+	         "      <result>Mars Bar</result>" +
+	         "    </ns1:addItemResponse>" +
+	         "  </env:Body>" +
+	         "</env:Envelope";
+	    
+		try {
+			SOAPMessageImpl soapMessage = (SOAPMessageImpl)factory.createMessage();
+			InputStream ins = new ByteArrayInputStream(soapMsg.getBytes());
+			domBuilder.build(soapMessage, ins, false);
+			fail("expected SOAPException");
+		} catch (Exception e) {
+			assertTrue(e instanceof CommonSOAPFaultException);
+		}
+	}
+	
+	
+	public void testStaxErroStream(){
+		String soapMsg  =
+	         "<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>" +
+	         "  <env:Header/>" +
+	         "  <env:Body>" +
+	         "    <ns1:addItemResponse xmlns:ns1='http://org.jboss.ws/addressing/replyto'>" +
+	         "      <result>Mars Bar</result>" +
+	         "    </ns1:addItemResponse>" +
+	         "  </env:Body>" +
+	         "</env:Envelope";
+	    
+		try {
+			SOAPMessageImpl soapMessage = (SOAPMessageImpl)factory.createMessage();
+			InputStream ins = new ByteArrayInputStream(soapMsg.getBytes());
+			staxBuilder.build(soapMessage, ins, false);
+			fail("expected IOException");
+		} catch (Exception e) {
+			assertTrue(e instanceof IOException);
+		}
+	}
+
+}



More information about the jbossws-commits mailing list