snichol     2002/09/06 10:02:59

  Modified:    java/src/org/apache/soap/transport TransportMessage.java
               java/src/org/apache/soap/util/net HTTPUtils.java
  Log:
  Clean up exception declarations.
  Throw SOAPExceptions rather than arbitrarily choosing IllegalArgumentException.
  Specify initial sizes for StringBuffer and ByteArrayOutputStream to decrease
  the number of buffer re-allocations.
  
  Revision  Changes    Path
  1.16      +9 -12     
xml-soap/java/src/org/apache/soap/transport/TransportMessage.java
  
  Index: TransportMessage.java
  ===================================================================
  RCS file: 
/home/cvs/xml-soap/java/src/org/apache/soap/transport/TransportMessage.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- TransportMessage.java     5 Sep 2002 16:50:52 -0000       1.15
  +++ TransportMessage.java     6 Sep 2002 17:02:58 -0000       1.16
  @@ -102,9 +102,7 @@
        * Call save() to generate the byte array.
        */
       public TransportMessage(String envelope, SOAPContext ctx,
  -                            Hashtable headers)
  -        throws IllegalArgumentException, MessagingException,
  -               IOException, SOAPException {
  +                            Hashtable headers) {
           this.envelope = envelope;
           this.ctx = ctx;
           if (headers != null)
  @@ -122,8 +120,7 @@
       public TransportMessage(InputStream is, int contentLength,
                               String contentType, SOAPContext ctx,
                               Hashtable headers)
  -        throws IllegalArgumentException, MessagingException,
  -               IOException, SOAPException {
  +            throws IOException, SOAPException {
           if (headers != null)
               this.headers = headers;
           else
  @@ -200,7 +197,7 @@
        * it is up to the invoker to check the root part's Content-Type
        */
       public String read()
  -        throws IllegalArgumentException, MessagingException,
  +        throws MessagingException,
           IOException, SOAPException {
   
           // Parse and validate content type.
  @@ -325,7 +322,7 @@
        * transport types that encode in a non-standard way.
        */
       public void save()
  -        throws IllegalArgumentException, MessagingException, IOException {
  +        throws MessagingException, IOException {
           /* If an envelope was provided as a string, set it as the root part.
            * Otherwise, assume that the SOAPContext already has a root part.
            * If there was already a root part, preserve its content-type.
  @@ -347,7 +344,7 @@
   
           // Print the whole response to a byte array.
           ByteArrayOutputStream payload =
  -            new ByteArrayOutputStream();
  +            new ByteArrayOutputStream(1024);
           ctx.writeTo(payload);
           bytes = payload.toByteArray();
   
  @@ -355,8 +352,8 @@
           // for MIME support). Just intercept the Content-Type
           // header. We don't want any of the MIME headers, and we know the
           // overall Content-Length anyway.
  -        StringBuffer namebuf = new StringBuffer();
  -        StringBuffer valuebuf = new StringBuffer();
  +        StringBuffer namebuf = new StringBuffer(64);
  +        StringBuffer valuebuf = new StringBuffer(64);
           boolean parsingName = true;
           for (offset = 0; offset < bytes.length; offset++) {
               if (bytes[offset] == '\n') {
  @@ -389,8 +386,8 @@
                               + "\"; start=\"" + rootCID + '"';
                       }
                   }
  -                namebuf = new StringBuffer();
  -                valuebuf = new StringBuffer();
  +                namebuf = new StringBuffer(64);
  +                valuebuf = new StringBuffer(64);
                   parsingName = true;
                   }
               else if (bytes[offset] != '\r') {
  
  
  
  1.31      +19 -17    xml-soap/java/src/org/apache/soap/util/net/HTTPUtils.java
  
  Index: HTTPUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/util/net/HTTPUtils.java,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- HTTPUtils.java    6 Sep 2002 06:07:03 -0000       1.30
  +++ HTTPUtils.java    6 Sep 2002 17:02:59 -0000       1.31
  @@ -98,7 +98,7 @@
     private static Socket buildSocket(URL url, int targetPort,
                                       String httpProxyHost, int httpProxyPort,
                                       Boolean tcpNoDelay)
  -     throws Exception {
  +        throws Exception {
         Socket s = null;
         String host = null;
         int port = targetPort;
  @@ -157,11 +157,12 @@
      */
     private static int getPort(URL url) throws IOException {
         int port = url.getPort();
  -      if (port < 0)  // No port given, use HTTP or HTTPS default
  +      if (port < 0)  { // No port given, use HTTP or HTTPS default
             if (url.getProtocol().equalsIgnoreCase("HTTPS"))
                 port = HTTPS_DEFAULT_PORT;
             else
                 port = HTTP_DEFAULT_PORT;
  +      }
         return port;
     }
   
  @@ -180,7 +181,7 @@
     public static TransportMessage post(URL url, TransportMessage request,
                                         int timeout,
                                         String httpProxyHost, int httpProxyPort)
  -      throws IllegalArgumentException, IOException, SOAPException {
  +      throws IOException, SOAPException {
       return post(url,
                   request,
                   timeout,
  @@ -207,7 +208,7 @@
                                         int timeout,
                                         String httpProxyHost, int httpProxyPort,
                                         int outputBufferSize)
  -      throws IllegalArgumentException, IOException, SOAPException {
  +      throws IOException, SOAPException {
       return post(url,
                   request,
                   timeout,
  @@ -236,7 +237,7 @@
                                         String httpProxyHost, int httpProxyPort,
                                         int outputBufferSize,
                                         Boolean tcpNoDelay)
  -      throws IllegalArgumentException, IOException, SOAPException {
  +      throws IOException, SOAPException {
             
       return post(url, request, timeout, httpProxyHost, httpProxyPort,
                    outputBufferSize, tcpNoDelay, null, null);
  @@ -274,7 +275,7 @@
                                         Boolean tcpNoDelay,
                                         StringBuffer requestCopy,
                                         StringBuffer responseCopy)
  -      throws IllegalArgumentException, IOException, SOAPException {
  +      throws IOException, SOAPException {
         /* Open the connection */
         OutputStream outStream = null;
         InputStream inStream = null;
  @@ -303,7 +304,8 @@
             t = ((InvocationTargetException)t).getTargetException();
           }
   
  -        throw new IllegalArgumentException("Error opening socket: " + t);
  +        throw new SOAPException(Constants.FAULT_CODE_CLIENT,
  +                                "Error opening socket: " + t, t);
         }
   
         /* Compute the Request URI */
  @@ -349,7 +351,7 @@
         /* Read the response status line. */
         int statusCode = 0;
         String statusString = null;
  -      StringBuffer linebuf = new StringBuffer();
  +      StringBuffer linebuf = new StringBuffer(128);
         int b = 0;
         while (b != '\n' && b != -1) {
             b = bInStream.read();
  @@ -361,7 +363,7 @@
             StringTokenizer st = new StringTokenizer(line);
             st.nextToken(); // ignore version part
             statusCode = Integer.parseInt (st.nextToken());
  -          StringBuffer sb = new StringBuffer();
  +          StringBuffer sb = new StringBuffer(128);
             while (st.hasMoreTokens()) {
                 sb.append (st.nextToken());
                 if (st.hasMoreTokens()) {
  @@ -371,8 +373,8 @@
             statusString = sb.toString();
         }
         catch (Exception e) {
  -          throw new IllegalArgumentException(
  -              "Error parsing HTTP status line \"" + line + "\": " + e);
  +          throw new SOAPException(Constants.FAULT_CODE_CLIENT,
  +              "Error parsing HTTP status line \"" + line + "\": " + e, e);
         }
   
         /* Read the entire response (following the status line)
  @@ -380,14 +382,13 @@
         ByteArrayDataSource ds = new ByteArrayDataSource(bInStream,
                             Constants.HEADERVAL_DEFAULT_CHARSET);
   
  -
         /* Extract the headers, content type and content length. */
         byte[] bytes = ds.toByteArray();
         Hashtable respHeaders = new Hashtable();
         int respContentLength = -1;
         String respContentType = null;
  -      StringBuffer namebuf = new StringBuffer();
  -      StringBuffer valuebuf = new StringBuffer();
  +      StringBuffer namebuf = new StringBuffer(64);
  +      StringBuffer valuebuf = new StringBuffer(64);
         boolean parsingName = true;
         int offset;
         for (offset = 0; offset < bytes.length; offset++) {
  @@ -419,8 +420,8 @@
                         }
                     }
                 }
  -              namebuf = new StringBuffer();
  -              valuebuf = new StringBuffer();
  +              namebuf = new StringBuffer(64);
  +              valuebuf = new StringBuffer(64);
                 parsingName = true;
             }
             else if (bytes[offset] != '\r') {
  @@ -465,7 +466,8 @@
             // Extract envelope and SOAPContext
             response.read();
         } catch (MessagingException me) {
  -          throw new IllegalArgumentException("Error parsing response: " + me);
  +          throw new SOAPException(Constants.FAULT_CODE_CLIENT,
  +                                  "Error parsing response: " + me, me);
         }
   
         /* All done here! */
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to