Modified: 
webservices/xmlrpc/branches/XMLRPC_3_0_BRANCH/tests/src/test/java/org/apache/xmlrpc/test/JiraTest.java
URL: 
http://svn.apache.org/viewvc/webservices/xmlrpc/branches/XMLRPC_3_0_BRANCH/tests/src/test/java/org/apache/xmlrpc/test/JiraTest.java?view=diff&rev=468141&r1=468140&r2=468141
==============================================================================
--- 
webservices/xmlrpc/branches/XMLRPC_3_0_BRANCH/tests/src/test/java/org/apache/xmlrpc/test/JiraTest.java
 (original)
+++ 
webservices/xmlrpc/branches/XMLRPC_3_0_BRANCH/tests/src/test/java/org/apache/xmlrpc/test/JiraTest.java
 Thu Oct 26 14:25:51 2006
@@ -1,323 +1,356 @@
-/*
- * Copyright 1999,2005 The Apache Software Foundation.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.xmlrpc.test;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.Collections;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Vector;
-
-import org.apache.log4j.BasicConfigurator;
-import org.apache.xmlrpc.XmlRpcException;
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.client.XmlRpcHttpClientConfig;
-import org.apache.xmlrpc.client.util.ClientFactory;
-import org.apache.xmlrpc.common.XmlRpcStreamRequestConfig;
-import org.apache.xmlrpc.parser.XmlRpcResponseParser;
-import org.apache.xmlrpc.server.XmlRpcHandlerMapping;
-import org.apache.xmlrpc.util.SAXParsers;
-import org.xml.sax.InputSource;
-import org.xml.sax.XMLReader;
-
-
-/**
- * Test case for various jira issues.
- */ 
-public class JiraTest extends XmlRpcTestCase {
-    /** Interface of the handler for [EMAIL PROTECTED] JiraTest#testXMLRPC89()}
-     */
-    public interface XMLRPC89Handler {
-        /**
-         * Returns the reversed vector.
-         */
-        Vector reverse(Vector pVector);
-        /**
-         * Returns the same hashtable, but doubles the
-         * values.
-         */
-        Hashtable doubledValues(Hashtable pMap);
-        /**
-         * Returns the same properties, but doubles the
-         * values.
-         */
-        Properties doubledPropertyValues(Properties pMap);
-    }
-
-    /**
-     * Handler for [EMAIL PROTECTED] JiraTest#testXMLRPC89()}
-     */ 
-    public static class XMLRPC89HandlerImpl implements XMLRPC89Handler {
-        public Vector reverse(Vector pVector) {
-            Vector result = new Vector(pVector.size());
-            result.addAll(pVector);
-            Collections.reverse(result);
-            return result;
-        }
-        public Hashtable doubledValues(Hashtable pMap) {
-            final Hashtable result;
-            if (pMap instanceof Properties) {
-                result = new Properties();
-            } else {
-                result = new Hashtable();
-            }
-            result.putAll(pMap);
-            for (Iterator iter = result.entrySet().iterator();  
iter.hasNext();  ) {
-                Map.Entry entry = (Map.Entry) iter.next();
-                Object value = entry.getValue();
-                final Integer i;
-                if (pMap instanceof Properties) {
-                    i = Integer.valueOf((String) value);
-                } else {
-                    i = (Integer) value;
-                }
-                Integer iDoubled = new Integer(i.intValue()*2);
-                if (pMap instanceof Properties) {
-                    entry.setValue(iDoubled.toString());
-                } else {
-                    entry.setValue(iDoubled);
-                }
-            }
-            return result;
-        }
-        public Properties doubledPropertyValues(Properties pProperties) {
-            return (Properties) doubledValues(pProperties);
-        }
-    }
-
-    protected XmlRpcHandlerMapping getHandlerMapping() throws IOException,
-            XmlRpcException {
-        return getHandlerMapping("JiraTest.properties");
-    }
-
-    /**
-     * Test case for <a href="http://issues.apache.org/jira/browse/XMLRPC-89";>
-     * XMLRPC-89</a>
-     */
-    public void testXMLRPC89() throws Exception {
-        for (int i = 0;  i < providers.length;  i++) {
-            testXMLRPC89Vector(providers[i]);
-            testXMLRPC89Hashtable(providers[i]);
-            testXMLRPC89Properties(providers[i]);
-        }
-    }
-
-    private void testXMLRPC89Vector(ClientProvider pProvider) throws Exception 
{
-        Vector values = new Vector();
-        for (int i = 0;  i < 3;  i++) {
-            values.add(new Integer(i));
-        }
-        Vector params = new Vector();
-        params.add(values);
-        XmlRpcClient client = pProvider.getClient();
-        client.setConfig(getConfig(pProvider));
-        Object res = client.execute(XMLRPC89Handler.class.getName() + 
".reverse", params);
-        Object[] result = (Object[]) res;
-        assertNotNull(result);
-        assertEquals(3, result.length);
-        for (int i = 0;  i < 3;  i++) {
-            assertEquals(new Integer(2-i), result[i]);
-        }
-
-        ClientFactory factory = new ClientFactory(client);
-        XMLRPC89Handler handler = (XMLRPC89Handler) 
factory.newInstance(XMLRPC89Handler.class);
-        Vector resultVector = handler.reverse(values);
-        assertNotNull(resultVector);
-        assertEquals(3, resultVector.size());
-        for (int i = 0;  i < 3;  i++) {
-            assertEquals(new Integer(2-i), resultVector.get(i));
-        }
-    }
-
-    private void verifyXMLRPC89Hashtable(Map pMap) {
-        assertNotNull(pMap);
-        assertEquals(3, pMap.size());
-        for (int i = 0;  i < 3;  i++) {
-            Integer j = (Integer) pMap.get(String.valueOf(i));
-            assertEquals(i*2, j.intValue());
-        }
-    }
-
-    private void testXMLRPC89Hashtable(ClientProvider pProvider) throws 
Exception {
-        Hashtable values = new Hashtable();
-        for (int i = 0;  i < 3;  i++) {
-            values.put(String.valueOf(i), new Integer(i));
-        }
-        XmlRpcClient client = pProvider.getClient();
-        client.setConfig(getConfig(pProvider));
-        Object res = client.execute(XMLRPC89Handler.class.getName() + 
".doubledValues", new Object[]{values});
-        verifyXMLRPC89Hashtable((Map) res);
-
-        ClientFactory factory = new ClientFactory(client);
-        XMLRPC89Handler handler = (XMLRPC89Handler) 
factory.newInstance(XMLRPC89Handler.class);
-        Hashtable result = handler.doubledValues(values);
-        verifyXMLRPC89Hashtable(result);
-    }
-
-    private void verifyXMLRPC89Properties(Map pMap) {
-        assertNotNull(pMap);
-        assertEquals(3, pMap.size());
-        for (int i = 0;  i < 3;  i++) {
-            String j = (String) pMap.get(String.valueOf(i));
-            assertEquals(i*2, Integer.parseInt(j));
-        }
-    }
-
-    private void testXMLRPC89Properties(ClientProvider pProvider) throws 
Exception {
-        Properties values = new Properties();
-        for (int i = 0;  i < 3;  i++) {
-            values.put(String.valueOf(i), String.valueOf(i));
-        }
-        XmlRpcClient client = pProvider.getClient();
-        client.setConfig(getConfig(pProvider));
-        Object res = client.execute(XMLRPC89Handler.class.getName() + 
".doubledPropertyValues", new Object[]{values});
-        verifyXMLRPC89Properties((Map) res);
-
-        ClientFactory factory = new ClientFactory(client);
-        XMLRPC89Handler handler = (XMLRPC89Handler) 
factory.newInstance(XMLRPC89Handler.class);
-        Properties result = handler.doubledPropertyValues(values);
-        verifyXMLRPC89Properties(result);
-    }
-
-    /** Handler for XMLRPC-96
-     */
-    public static class XMLRPC96Handler {
-        /** Returns the "Hello, world!" string.
-         */
-        public String getHelloWorld() {
-            return "Hello, world!";
-        }
-    }
-
-    /**
-     * Test case for <a href="http://issues.apache.org/jira/browse/XMLRPC-96";>
-     * XMLRPC-96</a>
-     */
-    public void testXMLRPC96() throws Exception {
-        for (int i = 0;  i < providers.length;  i++) {
-            testXMLRPC96(providers[i]);
-        }
-    }
-
-    private void testXMLRPC96(ClientProvider pProvider) throws Exception {
-        XmlRpcClient client = pProvider.getClient();
-        client.setConfig(getConfig(pProvider));
-        String s = (String) client.execute(XMLRPC96Handler.class.getName() + 
".getHelloWorld", new Object[0]);
-        assertEquals("Hello, world!", s);
-        s = (String) client.execute(XMLRPC96Handler.class.getName() + 
".getHelloWorld", (Object[]) null);
-        assertEquals("Hello, world!", s);
-    }
-
-    /**
-     * Test case for <a href="http://issues.apache.org/jira/browse/XMLRPC-113";>
-     * XMLRPC-113</a>
-     */
-    public void testXMLRPC113() throws Exception {
-        for (int i = 0;  i < providers.length;  i++) {
-            testXMLRPC113(providers[i]);
-        }
-    }
-
-    /**
-     * Handler interface for [EMAIL PROTECTED] JiraTest#testXMLRPC113()}
-     */ 
-    public interface XMLRPC113Handler {
-        /**
-         * Throws an [EMAIL PROTECTED] XmlRpcException} with the given error 
code.
-         */
-        Object throwCode(int pCode) throws XmlRpcException;
-    }
-
-    /**
-     * Handler for [EMAIL PROTECTED] JiraTest#testXMLRPC113()}
-     */ 
-    public static class XMLRPC113HandlerImpl implements XMLRPC113Handler {
-        public Object throwCode(int pCode) throws XmlRpcException {
-            throw new XmlRpcException(pCode, "Message: " + pCode);
-        }
-    }
-
-    private void testXMLRPC113(ClientProvider pProvider) throws Exception {
-        XmlRpcClient client = pProvider.getClient();
-        client.setConfig(getConfig(pProvider));
-        XMLRPC113Handler handler = (XMLRPC113Handler) new 
ClientFactory(client).newInstance(XMLRPC113Handler.class);
-        for (int i = 0;  i < 5;  i++) {
-            try {
-                client.execute(XMLRPC113Handler.class.getName() + 
".throwCode", new Object[]{new Integer(i)});
-                fail("Excpected exception");
-            } catch (XmlRpcException e) {
-                assertEquals(i, e.code);
-            }
-            try {
-                handler.throwCode(i);
-            } catch (XmlRpcException e) {
-                assertEquals(i, e.code);
-            }
-        }
-    }
-
-    /**
-     * Handler for [EMAIL PROTECTED] JiraTest#testXMLRPC115()}
-     */
-    public static class XMLRPC115Handler {
-        /**
-         * Does nothing, just for checking, whether the server is alive.
-         */
-        public Object[] ping() {
-            return new Object[0];
-        }
-    }
-
-    public void testXMLRPC115() throws Exception {
-        for (int i = 0;  i < providers.length;  i++) {
-            testXMLRPC115(providers[i]);
-        }
-    }
-
-    private void testXMLRPC115(ClientProvider pProvider) throws Exception {
-        if (pProvider instanceof SunHttpTransportProvider) {
-            XmlRpcClient client = pProvider.getClient();
-            client.setConfig(getConfig(pProvider));
-            URL url = ((XmlRpcHttpClientConfig) 
client.getConfig()).getServerURL();
-            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
-            conn.setDoInput(true);
-            conn.setDoOutput(true);
-            conn.setRequestMethod("POST");
-            conn.setRequestProperty("content-type", "text/xml");
-            OutputStream ostream = conn.getOutputStream();
-            Writer w = new OutputStreamWriter(ostream, "UTF-8");
-            w.write("<methodCall><methodName>" + 
XMLRPC115Handler.class.getName() + ".ping"
-                    + "</methodName></methodCall>");
-            w.close();
-            InputStream istream = conn.getInputStream();
-            XmlRpcResponseParser parser = new 
XmlRpcResponseParser((XmlRpcStreamRequestConfig) client.getClientConfig(), 
client.getTypeFactory());
-            XMLReader xr = SAXParsers.newXMLReader();
-            xr.setContentHandler(parser);
-            xr.parse(new InputSource(istream));
-            istream.close();
-            assertTrue(parser.getResult() instanceof Object[]);
-            assertEquals(0, ((Object[]) parser.getResult()).length);
-        }
-    }
-}
+/*
+ * Copyright 1999,2005 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.xmlrpc.test;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Collections;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Vector;
+
+import org.apache.log4j.BasicConfigurator;
+import org.apache.xmlrpc.XmlRpcException;
+import org.apache.xmlrpc.client.XmlRpcClient;
+import org.apache.xmlrpc.client.XmlRpcHttpClientConfig;
+import org.apache.xmlrpc.client.util.ClientFactory;
+import org.apache.xmlrpc.common.XmlRpcStreamRequestConfig;
+import org.apache.xmlrpc.parser.XmlRpcResponseParser;
+import org.apache.xmlrpc.server.XmlRpcHandlerMapping;
+import org.apache.xmlrpc.util.SAXParsers;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+
+
+/**
+ * Test case for various jira issues.
+ */ 
+public class JiraTest extends XmlRpcTestCase {
+    /** Interface of the handler for [EMAIL PROTECTED] JiraTest#testXMLRPC89()}
+     */
+    public interface XMLRPC89Handler {
+        /**
+         * Returns the reversed vector.
+         */
+        Vector reverse(Vector pVector);
+        /**
+         * Returns the same hashtable, but doubles the
+         * values.
+         */
+        Hashtable doubledValues(Hashtable pMap);
+        /**
+         * Returns the same properties, but doubles the
+         * values.
+         */
+        Properties doubledPropertyValues(Properties pMap);
+    }
+
+    /**
+     * Handler for [EMAIL PROTECTED] JiraTest#testXMLRPC89()}
+     */ 
+    public static class XMLRPC89HandlerImpl implements XMLRPC89Handler {
+        public Vector reverse(Vector pVector) {
+            Vector result = new Vector(pVector.size());
+            result.addAll(pVector);
+            Collections.reverse(result);
+            return result;
+        }
+        public Hashtable doubledValues(Hashtable pMap) {
+            final Hashtable result;
+            if (pMap instanceof Properties) {
+                result = new Properties();
+            } else {
+                result = new Hashtable();
+            }
+            result.putAll(pMap);
+            for (Iterator iter = result.entrySet().iterator();  
iter.hasNext();  ) {
+                Map.Entry entry = (Map.Entry) iter.next();
+                Object value = entry.getValue();
+                final Integer i;
+                if (pMap instanceof Properties) {
+                    i = Integer.valueOf((String) value);
+                } else {
+                    i = (Integer) value;
+                }
+                Integer iDoubled = new Integer(i.intValue()*2);
+                if (pMap instanceof Properties) {
+                    entry.setValue(iDoubled.toString());
+                } else {
+                    entry.setValue(iDoubled);
+                }
+            }
+            return result;
+        }
+        public Properties doubledPropertyValues(Properties pProperties) {
+            return (Properties) doubledValues(pProperties);
+        }
+    }
+
+    protected XmlRpcHandlerMapping getHandlerMapping() throws IOException,
+            XmlRpcException {
+        return getHandlerMapping("JiraTest.properties");
+    }
+
+    /**
+     * Test case for <a href="http://issues.apache.org/jira/browse/XMLRPC-89";>
+     * XMLRPC-89</a>
+     */
+    public void testXMLRPC89() throws Exception {
+        for (int i = 0;  i < providers.length;  i++) {
+            testXMLRPC89Vector(providers[i]);
+            testXMLRPC89Hashtable(providers[i]);
+            testXMLRPC89Properties(providers[i]);
+        }
+    }
+
+    private void testXMLRPC89Vector(ClientProvider pProvider) throws Exception 
{
+        Vector values = new Vector();
+        for (int i = 0;  i < 3;  i++) {
+            values.add(new Integer(i));
+        }
+        Vector params = new Vector();
+        params.add(values);
+        XmlRpcClient client = pProvider.getClient();
+        client.setConfig(getConfig(pProvider));
+        Object res = client.execute(XMLRPC89Handler.class.getName() + 
".reverse", params);
+        Object[] result = (Object[]) res;
+        assertNotNull(result);
+        assertEquals(3, result.length);
+        for (int i = 0;  i < 3;  i++) {
+            assertEquals(new Integer(2-i), result[i]);
+        }
+
+        ClientFactory factory = new ClientFactory(client);
+        XMLRPC89Handler handler = (XMLRPC89Handler) 
factory.newInstance(XMLRPC89Handler.class);
+        Vector resultVector = handler.reverse(values);
+        assertNotNull(resultVector);
+        assertEquals(3, resultVector.size());
+        for (int i = 0;  i < 3;  i++) {
+            assertEquals(new Integer(2-i), resultVector.get(i));
+        }
+    }
+
+    private void verifyXMLRPC89Hashtable(Map pMap) {
+        assertNotNull(pMap);
+        assertEquals(3, pMap.size());
+        for (int i = 0;  i < 3;  i++) {
+            Integer j = (Integer) pMap.get(String.valueOf(i));
+            assertEquals(i*2, j.intValue());
+        }
+    }
+
+    private void testXMLRPC89Hashtable(ClientProvider pProvider) throws 
Exception {
+        Hashtable values = new Hashtable();
+        for (int i = 0;  i < 3;  i++) {
+            values.put(String.valueOf(i), new Integer(i));
+        }
+        XmlRpcClient client = pProvider.getClient();
+        client.setConfig(getConfig(pProvider));
+        Object res = client.execute(XMLRPC89Handler.class.getName() + 
".doubledValues", new Object[]{values});
+        verifyXMLRPC89Hashtable((Map) res);
+
+        ClientFactory factory = new ClientFactory(client);
+        XMLRPC89Handler handler = (XMLRPC89Handler) 
factory.newInstance(XMLRPC89Handler.class);
+        Hashtable result = handler.doubledValues(values);
+        verifyXMLRPC89Hashtable(result);
+    }
+
+    private void verifyXMLRPC89Properties(Map pMap) {
+        assertNotNull(pMap);
+        assertEquals(3, pMap.size());
+        for (int i = 0;  i < 3;  i++) {
+            String j = (String) pMap.get(String.valueOf(i));
+            assertEquals(i*2, Integer.parseInt(j));
+        }
+    }
+
+    private void testXMLRPC89Properties(ClientProvider pProvider) throws 
Exception {
+        Properties values = new Properties();
+        for (int i = 0;  i < 3;  i++) {
+            values.put(String.valueOf(i), String.valueOf(i));
+        }
+        XmlRpcClient client = pProvider.getClient();
+        client.setConfig(getConfig(pProvider));
+        Object res = client.execute(XMLRPC89Handler.class.getName() + 
".doubledPropertyValues", new Object[]{values});
+        verifyXMLRPC89Properties((Map) res);
+
+        ClientFactory factory = new ClientFactory(client);
+        XMLRPC89Handler handler = (XMLRPC89Handler) 
factory.newInstance(XMLRPC89Handler.class);
+        Properties result = handler.doubledPropertyValues(values);
+        verifyXMLRPC89Properties(result);
+    }
+
+    /** Handler for XMLRPC-96
+     */
+    public static class XMLRPC96Handler {
+        /** Returns the "Hello, world!" string.
+         */
+        public String getHelloWorld() {
+            return "Hello, world!";
+        }
+    }
+
+    /**
+     * Test case for <a href="http://issues.apache.org/jira/browse/XMLRPC-96";>
+     * XMLRPC-96</a>
+     */
+    public void testXMLRPC96() throws Exception {
+        for (int i = 0;  i < providers.length;  i++) {
+            testXMLRPC96(providers[i]);
+        }
+    }
+
+    private void testXMLRPC96(ClientProvider pProvider) throws Exception {
+        XmlRpcClient client = pProvider.getClient();
+        client.setConfig(getConfig(pProvider));
+        String s = (String) client.execute(XMLRPC96Handler.class.getName() + 
".getHelloWorld", new Object[0]);
+        assertEquals("Hello, world!", s);
+        s = (String) client.execute(XMLRPC96Handler.class.getName() + 
".getHelloWorld", (Object[]) null);
+        assertEquals("Hello, world!", s);
+    }
+
+    /**
+     * Test case for <a href="http://issues.apache.org/jira/browse/XMLRPC-113";>
+     * XMLRPC-113</a>
+     */
+    public void testXMLRPC113() throws Exception {
+        for (int i = 0;  i < providers.length;  i++) {
+            testXMLRPC113(providers[i]);
+        }
+    }
+
+    /**
+     * Handler interface for [EMAIL PROTECTED] JiraTest#testXMLRPC113()}
+     */ 
+    public interface XMLRPC113Handler {
+        /**
+         * Throws an [EMAIL PROTECTED] XmlRpcException} with the given error 
code.
+         */
+        Object throwCode(int pCode) throws XmlRpcException;
+    }
+
+    /**
+     * Handler for [EMAIL PROTECTED] JiraTest#testXMLRPC113()}
+     */ 
+    public static class XMLRPC113HandlerImpl implements XMLRPC113Handler {
+        public Object throwCode(int pCode) throws XmlRpcException {
+            throw new XmlRpcException(pCode, "Message: " + pCode);
+        }
+    }
+
+    private void testXMLRPC113(ClientProvider pProvider) throws Exception {
+        XmlRpcClient client = pProvider.getClient();
+        client.setConfig(getConfig(pProvider));
+        XMLRPC113Handler handler = (XMLRPC113Handler) new 
ClientFactory(client).newInstance(XMLRPC113Handler.class);
+        for (int i = 0;  i < 5;  i++) {
+            try {
+                client.execute(XMLRPC113Handler.class.getName() + 
".throwCode", new Object[]{new Integer(i)});
+                fail("Excpected exception");
+            } catch (XmlRpcException e) {
+                assertEquals(i, e.code);
+            }
+            try {
+                handler.throwCode(i);
+            } catch (XmlRpcException e) {
+                assertEquals(i, e.code);
+            }
+        }
+    }
+
+    /**
+     * Handler for [EMAIL PROTECTED] JiraTest#testXMLRPC115()}
+     */
+    public static class XMLRPC115Handler {
+        /**
+         * Does nothing, just for checking, whether the server is alive.
+         */
+        public Object[] ping() {
+            return new Object[0];
+        }
+    }
+
+    public void testXMLRPC115() throws Exception {
+        for (int i = 0;  i < providers.length;  i++) {
+            testXMLRPC115(providers[i]);
+        }
+    }
+
+    private void testXMLRPC115(ClientProvider pProvider) throws Exception {
+        if (pProvider instanceof SunHttpTransportProvider) {
+            XmlRpcClient client = pProvider.getClient();
+            client.setConfig(getConfig(pProvider));
+            URL url = ((XmlRpcHttpClientConfig) 
client.getConfig()).getServerURL();
+            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+            conn.setDoInput(true);
+            conn.setDoOutput(true);
+            conn.setRequestMethod("POST");
+            conn.setRequestProperty("content-type", "text/xml");
+            OutputStream ostream = conn.getOutputStream();
+            Writer w = new OutputStreamWriter(ostream, "UTF-8");
+            w.write("<methodCall><methodName>" + 
XMLRPC115Handler.class.getName() + ".ping"
+                    + "</methodName></methodCall>");
+            w.close();
+            InputStream istream = conn.getInputStream();
+            XmlRpcResponseParser parser = new 
XmlRpcResponseParser((XmlRpcStreamRequestConfig) client.getClientConfig(), 
client.getTypeFactory());
+            XMLReader xr = SAXParsers.newXMLReader();
+            xr.setContentHandler(parser);
+            xr.parse(new InputSource(istream));
+            istream.close();
+            assertTrue(parser.getResult() instanceof Object[]);
+            assertEquals(0, ((Object[]) parser.getResult()).length);
+        }
+    }
+
+    /**
+     * Test case for <a href="http://issues.apache.org/jira/browse/XMLRPC-119";>
+     * XMLRPC-119</a>
+     */
+    public void testXMLRPC119() throws Exception {
+        for (int i = 0;  i < providers.length;  i++) {
+            testXMLRPC119(providers[i]);
+        }
+    }
+
+    /** Handler for XMLRPC-119
+     */
+    public static class XMLRPC119Handler {
+        /** Returns a string with a length of "num" Kilobytes.
+         */
+        public String getString(int pSize) {
+            StringBuffer sb = new StringBuffer(pSize*1024);
+            for (int i = 0;  i < pSize*1024;  i++) {
+                sb.append('&');
+            }
+            return sb.toString();
+        }
+    }
+
+    private void testXMLRPC119(ClientProvider pProvider) throws Exception {
+        XmlRpcClient client = pProvider.getClient();
+        client.setConfig(getConfig(pProvider));
+        for (int i = 0;  i < 100;  i+= 10) {
+            String s = (String) 
client.execute(XMLRPC119Handler.class.getName() + ".getString", new 
Object[]{new Integer(i)});
+            assertEquals(i*1024, s.length());
+        }
+    }
+}

Modified: 
webservices/xmlrpc/branches/XMLRPC_3_0_BRANCH/tests/src/test/java/org/apache/xmlrpc/test/ParserTest.java
URL: 
http://svn.apache.org/viewvc/webservices/xmlrpc/branches/XMLRPC_3_0_BRANCH/tests/src/test/java/org/apache/xmlrpc/test/ParserTest.java?view=diff&rev=468141&r1=468140&r2=468141
==============================================================================
--- 
webservices/xmlrpc/branches/XMLRPC_3_0_BRANCH/tests/src/test/java/org/apache/xmlrpc/test/ParserTest.java
 (original)
+++ 
webservices/xmlrpc/branches/XMLRPC_3_0_BRANCH/tests/src/test/java/org/apache/xmlrpc/test/ParserTest.java
 Thu Oct 26 14:25:51 2006
@@ -1,111 +1,111 @@
-package org.apache.xmlrpc.test;
-
-import java.io.IOException;
-import java.io.StringReader;
-
-import junit.framework.TestCase;
-
-import org.apache.xmlrpc.XmlRpcException;
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
-import org.apache.xmlrpc.common.XmlRpcHttpRequestConfigImpl;
-import org.apache.xmlrpc.common.XmlRpcStreamConfig;
-import org.apache.xmlrpc.common.XmlRpcStreamRequestConfig;
-import org.apache.xmlrpc.parser.XmlRpcRequestParser;
-import org.apache.xmlrpc.parser.XmlRpcResponseParser;
-import org.apache.xmlrpc.util.SAXParsers;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-
-
-/** Test for the various parsers.
- */
-public class ParserTest extends TestCase {
-       private Object parseResponse(final String s) throws XmlRpcException, 
IOException, SAXException {
-               XmlRpcStreamRequestConfig config = new XmlRpcClientConfigImpl();
-               XmlRpcClient client = new XmlRpcClient();
-               XmlRpcResponseParser parser = new XmlRpcResponseParser(config, 
client.getTypeFactory());
-               XMLReader xr = SAXParsers.newXMLReader();
-               xr.setContentHandler(parser);
-               xr.parse(new InputSource(new StringReader(s)));
-               Object o = parser.getResult();
-               return o;
-       }
-
-    private XmlRpcRequestParser parseRequest(final String s) throws 
XmlRpcException, IOException, SAXException {
-        XmlRpcStreamConfig config = new XmlRpcHttpRequestConfigImpl();
-        XmlRpcClient client = new XmlRpcClient();
-        XmlRpcRequestParser parser = new XmlRpcRequestParser(config, 
client.getTypeFactory());
-        XMLReader xr = SAXParsers.newXMLReader();
-        xr.setContentHandler(parser);
-        xr.parse(new InputSource(new StringReader(s)));
-        return parser;
-    }
-
-       /** Tests, whether strings can be parsed with,
-        * or without, the "string" tag.
-        */
-       public void testStringType() throws Exception {
-               final String[] strings = new String[]{
-                       "3", "<string>3</string>",
-                       "  <string>3</string>  "
-               };
-               for (int i = 0;  i < strings.length;  i++) {
-                       final String s =
-                               "<?xml version='1.0' encoding='UTF-8'?>\n"
-                               + "<methodResponse><params><param>\n"
-                               + "<value>" + strings[i] + "</value></param>\n"
-                               + "</params></methodResponse>\n";
-                       Object o = parseResponse(s);
-                       assertEquals("3", o);
-               }
-       }
-
-       /** Tests, whether nested arrays can be parsed.
-        */
-       public void testNestedObjectArrays() throws Exception {
-               final String s =
-                       "<?xml version='1.0' encoding='UTF-8'?>\n"
-                       + "<methodResponse><params><param>\n"
-                       + "<value><array><data><value><array>\n"
-                       + "<data><value>array</value>\n"
-                       + "<value>string</value></data></array>\n"
-                       + "</value></data></array></value></param>\n"
-                       + "</params></methodResponse>\n";
-               Object o = parseResponse(s);
-               assertTrue(o instanceof Object[]);
-               Object[] outer = (Object[]) o;
-               assertEquals(1, outer.length);
-               o = outer[0];
-               assertTrue(o instanceof Object[]);
-               Object[] inner = (Object[]) o;
-               assertEquals(2, inner.length);
-               assertEquals("array", inner[0]);
-               assertEquals("string", inner[1]);
-       }
-
-       /**
-     * Tests, whether a request may omit the <params> tag.
-        */
-    public void testOptionalParams() throws Exception {
-        final String s1 = "<methodResponse/>";
-        Object o1 = parseResponse(s1);
-        assertNull(o1);
-
-        final String s2 = "<methodResponse><params/></methodResponse>";
-        Object o2 = parseResponse(s2);
-        assertNull(o2);
-
-        final String s3 = 
"<methodCall><methodName>foo</methodName></methodCall>";
-        XmlRpcRequestParser p3 = parseRequest(s3);
-        assertEquals("foo", p3.getMethodName());
-        assertNull(p3.getParams());
-
-        final String s4 = 
"<methodCall><methodName>bar</methodName><params/></methodCall>";
-        XmlRpcRequestParser p4 = parseRequest(s4);
-        assertEquals("bar", p4.getMethodName());
-        assertNotNull(p4.getParams());
-        assertTrue(p4.getParams().size() == 0);
-    }
-}
+package org.apache.xmlrpc.test;
+
+import java.io.IOException;
+import java.io.StringReader;
+
+import junit.framework.TestCase;
+
+import org.apache.xmlrpc.XmlRpcException;
+import org.apache.xmlrpc.client.XmlRpcClient;
+import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
+import org.apache.xmlrpc.common.XmlRpcHttpRequestConfigImpl;
+import org.apache.xmlrpc.common.XmlRpcStreamConfig;
+import org.apache.xmlrpc.common.XmlRpcStreamRequestConfig;
+import org.apache.xmlrpc.parser.XmlRpcRequestParser;
+import org.apache.xmlrpc.parser.XmlRpcResponseParser;
+import org.apache.xmlrpc.util.SAXParsers;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+
+
+/** Test for the various parsers.
+ */
+public class ParserTest extends TestCase {
+       private Object parseResponse(final String s) throws XmlRpcException, 
IOException, SAXException {
+               XmlRpcStreamRequestConfig config = new XmlRpcClientConfigImpl();
+               XmlRpcClient client = new XmlRpcClient();
+               XmlRpcResponseParser parser = new XmlRpcResponseParser(config, 
client.getTypeFactory());
+               XMLReader xr = SAXParsers.newXMLReader();
+               xr.setContentHandler(parser);
+               xr.parse(new InputSource(new StringReader(s)));
+               Object o = parser.getResult();
+               return o;
+       }
+
+    private XmlRpcRequestParser parseRequest(final String s) throws 
XmlRpcException, IOException, SAXException {
+        XmlRpcStreamConfig config = new XmlRpcHttpRequestConfigImpl();
+        XmlRpcClient client = new XmlRpcClient();
+        XmlRpcRequestParser parser = new XmlRpcRequestParser(config, 
client.getTypeFactory());
+        XMLReader xr = SAXParsers.newXMLReader();
+        xr.setContentHandler(parser);
+        xr.parse(new InputSource(new StringReader(s)));
+        return parser;
+    }
+
+       /** Tests, whether strings can be parsed with,
+        * or without, the "string" tag.
+        */
+       public void testStringType() throws Exception {
+               final String[] strings = new String[]{
+                       "3", "<string>3</string>",
+                       "  <string>3</string>  "
+               };
+               for (int i = 0;  i < strings.length;  i++) {
+                       final String s =
+                               "<?xml version='1.0' encoding='UTF-8'?>\n"
+                               + "<methodResponse><params><param>\n"
+                               + "<value>" + strings[i] + "</value></param>\n"
+                               + "</params></methodResponse>\n";
+                       Object o = parseResponse(s);
+                       assertEquals("3", o);
+               }
+       }
+
+       /** Tests, whether nested arrays can be parsed.
+        */
+       public void testNestedObjectArrays() throws Exception {
+               final String s =
+                       "<?xml version='1.0' encoding='UTF-8'?>\n"
+                       + "<methodResponse><params><param>\n"
+                       + "<value><array><data><value><array>\n"
+                       + "<data><value>array</value>\n"
+                       + "<value>string</value></data></array>\n"
+                       + "</value></data></array></value></param>\n"
+                       + "</params></methodResponse>\n";
+               Object o = parseResponse(s);
+               assertTrue(o instanceof Object[]);
+               Object[] outer = (Object[]) o;
+               assertEquals(1, outer.length);
+               o = outer[0];
+               assertTrue(o instanceof Object[]);
+               Object[] inner = (Object[]) o;
+               assertEquals(2, inner.length);
+               assertEquals("array", inner[0]);
+               assertEquals("string", inner[1]);
+       }
+
+       /**
+     * Tests, whether a request may omit the <params> tag.
+        */
+    public void testOptionalParams() throws Exception {
+        final String s1 = "<methodResponse/>";
+        Object o1 = parseResponse(s1);
+        assertNull(o1);
+
+        final String s2 = "<methodResponse><params/></methodResponse>";
+        Object o2 = parseResponse(s2);
+        assertNull(o2);
+
+        final String s3 = 
"<methodCall><methodName>foo</methodName></methodCall>";
+        XmlRpcRequestParser p3 = parseRequest(s3);
+        assertEquals("foo", p3.getMethodName());
+        assertNull(p3.getParams());
+
+        final String s4 = 
"<methodCall><methodName>bar</methodName><params/></methodCall>";
+        XmlRpcRequestParser p4 = parseRequest(s4);
+        assertEquals("bar", p4.getMethodName());
+        assertNotNull(p4.getParams());
+        assertTrue(p4.getParams().size() == 0);
+    }
+}

Modified: 
webservices/xmlrpc/branches/XMLRPC_3_0_BRANCH/tests/src/test/resources/org/apache/xmlrpc/test/JiraTest.properties
URL: 
http://svn.apache.org/viewvc/webservices/xmlrpc/branches/XMLRPC_3_0_BRANCH/tests/src/test/resources/org/apache/xmlrpc/test/JiraTest.properties?view=diff&rev=468141&r1=468140&r2=468141
==============================================================================
--- 
webservices/xmlrpc/branches/XMLRPC_3_0_BRANCH/tests/src/test/resources/org/apache/xmlrpc/test/JiraTest.properties
 (original)
+++ 
webservices/xmlrpc/branches/XMLRPC_3_0_BRANCH/tests/src/test/resources/org/apache/xmlrpc/test/JiraTest.properties
 Thu Oct 26 14:25:51 2006
@@ -1,4 +1,5 @@
-org.apache.xmlrpc.test.JiraTest$XMLRPC89Handler=org.apache.xmlrpc.test.JiraTest$XMLRPC89HandlerImpl
-org.apache.xmlrpc.test.JiraTest$XMLRPC96Handler=org.apache.xmlrpc.test.JiraTest$XMLRPC96Handler
-org.apache.xmlrpc.test.JiraTest$XMLRPC113Handler=org.apache.xmlrpc.test.JiraTest$XMLRPC113HandlerImpl
-org.apache.xmlrpc.test.JiraTest$XMLRPC115Handler=org.apache.xmlrpc.test.JiraTest$XMLRPC115Handler
+org.apache.xmlrpc.test.JiraTest$XMLRPC89Handler=org.apache.xmlrpc.test.JiraTest$XMLRPC89HandlerImpl
+org.apache.xmlrpc.test.JiraTest$XMLRPC96Handler=org.apache.xmlrpc.test.JiraTest$XMLRPC96Handler
+org.apache.xmlrpc.test.JiraTest$XMLRPC113Handler=org.apache.xmlrpc.test.JiraTest$XMLRPC113HandlerImpl
+org.apache.xmlrpc.test.JiraTest$XMLRPC115Handler=org.apache.xmlrpc.test.JiraTest$XMLRPC115Handler
+org.apache.xmlrpc.test.JiraTest$XMLRPC119Handler=org.apache.xmlrpc.test.JiraTest$XMLRPC119Handler


Reply via email to