mturk       2005/04/16 07:47:20

  Modified:    jni/java/org/apache/tomcat/jni Socket.java
               jni/native/src network.c
  Log:
  Remove unnecessary exceptions for calls that can return
  negative values as error codes.
  
  Revision  Changes    Path
  1.8       +3 -5      
jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/Socket.java
  
  Index: Socket.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jni/java/org/apache/tomcat/jni/Socket.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Socket.java       16 Apr 2005 10:31:34 -0000      1.7
  +++ Socket.java       16 Apr 2005 14:47:20 -0000      1.8
  @@ -138,8 +138,7 @@
        * This may be where we will find out if there is any other process
        *      using the selected port.
        */
  -    public static native int bind(long sock, long sa)
  -        throws Exception;
  +    public static native int bind(long sock, long sa);
   
       /**
        * Listen to a bound socket for connections.
  @@ -444,7 +443,6 @@
        */
       public static native int sendfile(long sock, long file, byte [][] 
headers,
                                         byte[][] trailers, long offset,
  -                                      int len, int flags)
  -        throws Exception;
  +                                      int len, int flags);
   
   }
  
  
  
  1.8       +17 -27    jakarta-tomcat-connectors/jni/native/src/network.c
  
  Index: network.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/network.c,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- network.c 16 Apr 2005 10:31:34 -0000      1.7
  +++ network.c 16 Apr 2005 14:47:20 -0000      1.8
  @@ -135,9 +135,7 @@
       apr_sockaddr_t *a = J2P(sa, apr_sockaddr_t *);
   
       UNREFERENCED_STDARGS;
  -    TCN_THROW_IF_ERR(apr_socket_bind(s, a), s);
  -cleanup:
  -    return (jint)0;
  +    return (jint)apr_socket_bind(s, a);
   }
   
   TCN_IMPLEMENT_CALL(jint, Socket, listen)(TCN_STDARGS, jlong sock,
  @@ -214,10 +212,8 @@
       UNREFERENCED(o);
       bytes  = (char *)(*e)->GetDirectBufferAddress(e, buf);
       nbytes = (apr_size_t)(*e)->GetDirectBufferCapacity(e, buf);
  -    if (bytes == NULL || nbytes < 0) {
  -        tcn_ThrowAPRException(e, APR_EGENERAL);
  -        return (jint)(-APR_EGENERAL);
  -    }
  +    if (bytes == NULL || nbytes < 0)
  +        return (jint)(-APR_EINVAL);
       if (len > 0)
           nbytes = min(nbytes - offset, (apr_size_t)len);
       ss = apr_socket_send(s, bytes + offset, &nbytes);
  @@ -241,10 +237,8 @@
   
       UNREFERENCED(o);
   
  -    if (nvec >= APR_MAX_IOVEC_SIZE) {
  -        /* TODO: Throw something here */
  -        return 0;
  -    }
  +    if (nvec >= APR_MAX_IOVEC_SIZE)
  +        return (jint)(-APR_ENOMEM);
       for (i = 0; i < nvec; i++) {
           ba[i] = (*e)->GetObjectArrayElement(e, bufs, i);
           vec[i].iov_len  = (*e)->GetArrayLength(e, ba[i]);
  @@ -356,10 +350,8 @@
       UNREFERENCED(o);
       bytes  = (char *)(*e)->GetDirectBufferAddress(e, buf);
       nbytes = (apr_size_t)(*e)->GetDirectBufferCapacity(e, buf);
  -    if (bytes == NULL || nbytes < 0) {
  -        tcn_ThrowAPRException(e, APR_EGENERAL);
  -        return (jint)(-APR_EGENERAL);
  -    }
  +    if (bytes == NULL || nbytes < 0)
  +        return (jint)(-APR_EINVAL);
       if (len > 0)
           nbytes = min(nbytes - offset, (apr_size_t)len);
   
  @@ -384,10 +376,8 @@
       UNREFERENCED(o);
       bytes  = (char *)(*e)->GetDirectBufferAddress(e, buf);
       nbytes = (apr_size_t)(*e)->GetDirectBufferCapacity(e, buf);
  -    if (bytes == NULL || nbytes < 0) {
  -        tcn_ThrowAPRException(e, APR_EGENERAL);
  -        return (jint)(-APR_EGENERAL);
  -    }
  +    if (bytes == NULL || nbytes < 0)
  +        return (jint)(-APR_EINVAL);
       if (len > 0)
           nbytes = min(nbytes - offset, (apr_size_t)len);
   
  @@ -503,6 +493,7 @@
       apr_off_t off = (apr_off_t)offset;
       apr_size_t written = (apr_size_t)len;
       apr_hdtr_t hdrs;
  +    apr_status_t ss;
   
       UNREFERENCED(o);
   
  @@ -511,10 +502,8 @@
       if (trailers)
           nt = (*e)->GetArrayLength(e, trailers);
       /* Check for overflow */
  -    if (nh >= APR_MAX_IOVEC_SIZE || nt >= APR_MAX_IOVEC_SIZE) {
  -        /* TODO: Throw something here */
  -        return 0;
  -    }
  +    if (nh >= APR_MAX_IOVEC_SIZE || nt >= APR_MAX_IOVEC_SIZE)
  +        return (jint)(-APR_ENOMEM);
   
       for (i = 0; i < nh; i++) {
           hba[i] = (*e)->GetObjectArrayElement(e, headers, i);
  @@ -531,10 +520,8 @@
       hdrs.trailers = &tvec[0];
       hdrs.numtrailers = nt;
   
  -    TCN_THROW_IF_ERR(apr_socket_sendfile(s, f, &hdrs, &off,
  -                     &written, (apr_int32_t)flags), i);
  +    ss = apr_socket_sendfile(s, f, &hdrs, &off, &written, 
(apr_int32_t)flags);
   
  -cleanup:
       for (i = 0; i < nh; i++) {
           (*e)->ReleaseByteArrayElements(e, hba[i], hvec[i].iov_base, 
JNI_ABORT);
       }
  @@ -545,6 +532,9 @@
       /* Return Number of bytes actually sent,
        * including headers, file, and trailers
        */
  -    return (jint)written;
  +    if (ss == APR_SUCCESS)
  +        return (jint)written;
  +    else
  +        return -(jint)ss;
   }
   
  
  
  

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

Reply via email to