You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by chunrong lai <ch...@gmail.com> on 2008/12/03 06:54:17 UTC
Re: svn commit: r721444 - in /harmony/enhanced/classlib/trunk/modules/luni/src/main: java/java/net/ java/org/apache/harmony/luni/net/ java/org/apache/harmony/luni/platform/ native/luni/shared/
It is a note that multiple classlib tests fail in Linux platform with this
commit, according to the integrity results.
Below is the stacktrace.
[java] [junit] Uncaught exception in Thread-18:
[java] [junit] java.lang.UnsatisfiedLinkError: Cannot load native
org/apache/harmony/luni/platform/OSNetworkSystem.write(Ljava/io/FileDescriptor;[BII)I
[java] [junit] at
org.apache.harmony.luni.net.PlainSocketImpl.write(PlainSocketImpl.java:554)
[java] [junit] at
org.apache.harmony.luni.net.SocketOutputStream.write(SocketOutputStream.java:50)
[java] [junit] at
org.apache.harmony.xnet.provider.jsse.SSLSocketImpl.close(SSLSocketImpl.java:507)
[java] [junit] at
org.apache.harmony.xnet.provider.jsse.SSLSocketFunctionalTest$2.run(SSLSocketFunctionalTest.java:322)
[java] [junit] Caused by: java.lang.UnsatisfiedLinkError:
org/apache/harmony/luni/platform/OSNetworkSystem.write(Ljava/io/FileDescriptor;[BII)I
[java] [junit] at
org.apache.harmony.luni.net.PlainSocketImpl.write(PlainSocketImpl.java:554)
On Fri, Nov 28, 2008 at 8:08 PM, <te...@apache.org> wrote:
> Author: tellison
> Date: Fri Nov 28 04:08:30 2008
> New Revision: 721444
>
> URL: http://svn.apache.org/viewvc?rev=721444&view=rev
> Log:
> Continued tidy-up of socket read and write functionality.
> - Switch callers from using sendStream() to write(). sendStream() will be
> removed as redundant.
> - Switch callers from using receiveStream() to read(). receiveStream()
> will be removed as redundant.
> - Extend read() native to account for non-blocking sockets.
>
> Modified:
>
> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/SocketImpl.java
>
> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java
>
> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java
>
> harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/OSNetworkSystem.c
>
> Modified:
> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/SocketImpl.java
> URL:
> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/SocketImpl.java?rev=721444&r1=721443&r2=721444&view=diff
>
> ==============================================================================
> ---
> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/SocketImpl.java
> (original)
> +++
> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/SocketImpl.java
> Fri Nov 28 04:08:30 2008
> @@ -274,7 +274,7 @@
> return this.netImpl.sendDatagram2(fd, buffer, offset, count,
> port,
> address);
> }
> - return this.netImpl.sendStream(fd, buffer, offset, count);
> + return this.netImpl.write(fd, buffer, offset, count);
> }
>
> /**
>
> Modified:
> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java
> URL:
> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java?rev=721444&r1=721443&r2=721444&view=diff
>
> ==============================================================================
> ---
> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java
> (original)
> +++
> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java
> Fri Nov 28 04:08:30 2008
> @@ -534,16 +534,16 @@
> if (shutdownInput) {
> return -1;
> }
> - try {
> - int read = netImpl.receiveStream(fd, buffer, offset, count,
> - receiveTimeout);
> - if (read == -1) {
> - shutdownInput = true;
> - }
> - return read;
> - } catch (InterruptedIOException e) {
> - throw new SocketTimeoutException(e.getMessage());
> + int read = netImpl.read(fd, buffer, offset, count,
> receiveTimeout);
> + // Return of zero bytes for a blocking socket means a timeout
> occurred
> + if (read == 0) {
> + throw new SocketTimeoutException();
> }
> + // Return of -1 indicates the peer was closed
> + if (read == -1) {
> + shutdownInput = true;
> + }
> + return read;
> }
>
> int write(byte[] buffer, int offset, int count) throws IOException {
> @@ -551,6 +551,6 @@
> return netImpl.sendDatagram2(fd, buffer, offset, count, port,
> address);
> }
> - return netImpl.sendStream(fd, buffer, offset, count);
> + return netImpl.write(fd, buffer, offset, count);
> }
> }
>
> Modified:
> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java
> URL:
> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java?rev=721444&r1=721443&r2=721444&view=diff
>
> ==============================================================================
> ---
> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java
> (original)
> +++
> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java
> Fri Nov 28 04:08:30 2008
> @@ -228,6 +228,11 @@
> /**
> * Read available bytes from the given file descriptor into a byte
> array.
> *
> + * The read has an optional timeout parameter, which if non-zero is
> the
> + * length of time that the read will wait on a select call to see if
> any
> + * bytes are available for reading. If the timeout expires the method
> + * returns zero to indicate no bytes were read.
> + *
> * @param fd
> * the socket file descriptor to read
> * @param data
> @@ -238,7 +243,9 @@
> * @param count
> * the maximum number of bytes to read
> * @param timeout
> - * the length of time to wait for the bytes, in
> milliseconds
> + * the length of time to wait for the bytes, in
> milliseconds; or
> + * zero to indicate no timeout applied. When there is no
> timeout
> + * applied the read may block based upon socket options.
> * @return number of bytes read, or zero if there were no bytes
> available
> * before the timeout occurred, or -1 to indicate the socket is
> * closed
> @@ -314,11 +321,13 @@
> * the max number of bytes to receive
> * @param timeout
> * the max time the read operation should block waiting for
> data
> - * @return int the actual number of bytes read
> + * @return the actual number of bytes read
> * @throws IOException
> * @throws SocketException
> * if an error occurs while reading
> + * @deprecated use {@link #read(FileDescriptor, byte[], int, int,
> int)}
> */
> + @Deprecated
> public native int receiveStream(FileDescriptor aFD, byte[] data,
> int offset, int count, int timeout) throws IOException;
>
> @@ -482,7 +491,9 @@
> * @throws IOException
> * @throws SocketException
> * if an error occurs while writing
> + * @deprecated use {@link #write(FileDescriptor, byte[], int, int)}
> */
> + @Deprecated
> public native int sendStream(FileDescriptor fd, byte[] data, int
> offset,
> int count) throws IOException;
>
>
> Modified:
> harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/OSNetworkSystem.c
> URL:
> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/OSNetworkSystem.c?rev=721444&r1=721443&r2=721444&view=diff
>
> ==============================================================================
> ---
> harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/OSNetworkSystem.c
> (original)
> +++
> harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/OSNetworkSystem.c
> Fri Nov 28 04:08:30 2008
> @@ -339,7 +339,7 @@
> /* Read directly into the byte array */
> result =
> Java_org_apache_harmony_luni_platform_OSNetworkSystem_readDirect
> - (env, thiz, fd, (jlong) (IDATA)message + offset, count, timeout);
> + (env, thiz, fd, (jlong) (IDATA)(message + offset), count, timeout);
>
> /* If the pointer was to a copy it needs to be released */
> if (isCopy == JNI_TRUE) {
> @@ -361,32 +361,38 @@
> */
> JNIEXPORT jint JNICALL
> Java_org_apache_harmony_luni_platform_OSNetworkSystem_readDirect
> - (JNIEnv * env, jobject thiz, jobject fileDescriptor, jlong address,
> + (JNIEnv * env, jobject thiz, jobject fd, jlong address,
> jint count, jint timeout)
> {
> PORT_ACCESS_FROM_ENV(env);
> hysocket_t hysocketP;
> - jbyte *message = (jbyte *) (IDATA)address;
> + U_8 *message = (U_8 *)(IDATA)address;
> I_32 result, localCount;
>
> - hysocketP = getJavaIoFileDescriptorContentsAsAPointer(env,
> fileDescriptor);
> + hysocketP = getJavaIoFileDescriptorContentsAsAPointer(env, fd);
>
> - /* Check and potentially wait to see if any bytes available */
> - result = selectRead(env, hysocketP, timeout * 1000, FALSE);
> - if (0 > result) {
> - if (result == HYPORT_ERROR_SOCKET_TIMEOUT) {
> - return (jint) 0; // return zero bytes to indicate timeout
> + /* A non-zero timeout will first check, and potentially wait, to see if
> any
> + * bytes are available
> + */
> + if (timeout != 0) {
> + result = selectRead(env, hysocketP, timeout * 1000, FALSE);
> + if (0 > result) {
> + if (result == HYPORT_ERROR_SOCKET_TIMEOUT) {
> + return (jint) 0; // return zero bytes to indicate timeout
> + }
> + throwJavaNetSocketException(env, result);
> + return (jint) 0; // Unused, exception takes precedence
> }
> - throwJavaNetSocketException(env, result);
> - return (jint) 0; // Unused, exception takes precedence
> }
>
> /* Limit size of read to 64k bytes */
> localCount = (count < 65536) ? count : 65536;
> -
> - result =
> - hysock_read(hysocketP, (U_8 *) message, localCount, HYSOCK_NOFLAGS);
> + result = hysock_read(hysocketP, message, localCount, HYSOCK_NOFLAGS);
> if (0 > result) {
> + if (HYPORT_ERROR_SOCKET_WOULDBLOCK == result) {
> + /* We were asked to read on a nonblocking socket and there is no
> data available */
> + return (jint) 0;
> + }
> throwJavaNetSocketException(env, result);
> return (jint) 0;
> }
> @@ -395,6 +401,7 @@
> return (0 == result) ? (jint) - 1 : (jint) result;
> }
>
> +
> /*
> * Class: org_apache_harmony_luni_platform_OSNetworkSystem
> * Method: write
> @@ -415,7 +422,7 @@
> /* Write directly from the byte array */
> result =
> Java_org_apache_harmony_luni_platform_OSNetworkSystem_writeDirect
> - (env, thiz, fd, (jlong)((IDATA) message + offset), count);
> + (env, thiz, fd, (jlong) (IDATA)(message + offset), count);
>
>
> /* If the pointer was to a copy it needs to be released */
> @@ -1622,6 +1629,9 @@
> }
> }
>
> +/*
> + * Deprecated. Use
> Java_org_apache_harmony_luni_platform_OSNetworkSystem_read
> + */
> JNIEXPORT jint JNICALL
> Java_org_apache_harmony_luni_platform_OSNetworkSystem_receiveStream
> (JNIEnv * env, jobject thiz, jobject fileDescriptor, jbyteArray data,
> @@ -1682,9 +1692,7 @@
>
>
> /*
> - * Class: org_apache_harmony_luni_platform_OSNetworkSystem
> - * Method: sendStream
> - * Signature: (Ljava/io/FileDescriptor;[BII)I
> + * Deprecated : use
> Java_org_apache_harmony_luni_platform_OSNetworkSystem_write
> */
> JNIEXPORT jint JNICALL
> Java_org_apache_harmony_luni_platform_OSNetworkSystem_sendStream
>
>
>
Re: svn commit: r721444 - in /harmony/enhanced/classlib/trunk/modules/luni/src/main:
java/java/net/ java/org/apache/harmony/luni/net/ java/org/apache/harmony/luni/platform/
native/luni/shared/
Posted by Tim Ellison <t....@gmail.com>.
Thanks Chunrong. Fixed @ r722815.
Regards,
Tim
chunrong lai wrote:
> It is a note that multiple classlib tests fail in Linux platform with this
> commit, according to the integrity results.
> Below is the stacktrace.
>
> [java] [junit] Uncaught exception in Thread-18:
> [java] [junit] java.lang.UnsatisfiedLinkError: Cannot load native
> org/apache/harmony/luni/platform/OSNetworkSystem.write(Ljava/io/FileDescriptor;[BII)I
> [java] [junit] at
> org.apache.harmony.luni.net.PlainSocketImpl.write(PlainSocketImpl.java:554)
> [java] [junit] at
> org.apache.harmony.luni.net.SocketOutputStream.write(SocketOutputStream.java:50)
> [java] [junit] at
> org.apache.harmony.xnet.provider.jsse.SSLSocketImpl.close(SSLSocketImpl.java:507)
> [java] [junit] at
> org.apache.harmony.xnet.provider.jsse.SSLSocketFunctionalTest$2.run(SSLSocketFunctionalTest.java:322)
> [java] [junit] Caused by: java.lang.UnsatisfiedLinkError:
> org/apache/harmony/luni/platform/OSNetworkSystem.write(Ljava/io/FileDescriptor;[BII)I
> [java] [junit] at
> org.apache.harmony.luni.net.PlainSocketImpl.write(PlainSocketImpl.java:554)
>
>
> On Fri, Nov 28, 2008 at 8:08 PM, <te...@apache.org> wrote:
>
>> Author: tellison
>> Date: Fri Nov 28 04:08:30 2008
>> New Revision: 721444
>>
>> URL: http://svn.apache.org/viewvc?rev=721444&view=rev
>> Log:
>> Continued tidy-up of socket read and write functionality.
>> - Switch callers from using sendStream() to write(). sendStream() will be
>> removed as redundant.
>> - Switch callers from using receiveStream() to read(). receiveStream()
>> will be removed as redundant.
>> - Extend read() native to account for non-blocking sockets.
>>
>> Modified:
>>
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/SocketImpl.java
>>
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java
>>
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java
>>
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/OSNetworkSystem.c
>>
>> Modified:
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/SocketImpl.java
>> URL:
>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/SocketImpl.java?rev=721444&r1=721443&r2=721444&view=diff
>>
>> ==============================================================================
>> ---
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/SocketImpl.java
>> (original)
>> +++
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/net/SocketImpl.java
>> Fri Nov 28 04:08:30 2008
>> @@ -274,7 +274,7 @@
>> return this.netImpl.sendDatagram2(fd, buffer, offset, count,
>> port,
>> address);
>> }
>> - return this.netImpl.sendStream(fd, buffer, offset, count);
>> + return this.netImpl.write(fd, buffer, offset, count);
>> }
>>
>> /**
>>
>> Modified:
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java
>> URL:
>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java?rev=721444&r1=721443&r2=721444&view=diff
>>
>> ==============================================================================
>> ---
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java
>> (original)
>> +++
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java
>> Fri Nov 28 04:08:30 2008
>> @@ -534,16 +534,16 @@
>> if (shutdownInput) {
>> return -1;
>> }
>> - try {
>> - int read = netImpl.receiveStream(fd, buffer, offset, count,
>> - receiveTimeout);
>> - if (read == -1) {
>> - shutdownInput = true;
>> - }
>> - return read;
>> - } catch (InterruptedIOException e) {
>> - throw new SocketTimeoutException(e.getMessage());
>> + int read = netImpl.read(fd, buffer, offset, count,
>> receiveTimeout);
>> + // Return of zero bytes for a blocking socket means a timeout
>> occurred
>> + if (read == 0) {
>> + throw new SocketTimeoutException();
>> }
>> + // Return of -1 indicates the peer was closed
>> + if (read == -1) {
>> + shutdownInput = true;
>> + }
>> + return read;
>> }
>>
>> int write(byte[] buffer, int offset, int count) throws IOException {
>> @@ -551,6 +551,6 @@
>> return netImpl.sendDatagram2(fd, buffer, offset, count, port,
>> address);
>> }
>> - return netImpl.sendStream(fd, buffer, offset, count);
>> + return netImpl.write(fd, buffer, offset, count);
>> }
>> }
>>
>> Modified:
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java
>> URL:
>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java?rev=721444&r1=721443&r2=721444&view=diff
>>
>> ==============================================================================
>> ---
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java
>> (original)
>> +++
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java
>> Fri Nov 28 04:08:30 2008
>> @@ -228,6 +228,11 @@
>> /**
>> * Read available bytes from the given file descriptor into a byte
>> array.
>> *
>> + * The read has an optional timeout parameter, which if non-zero is
>> the
>> + * length of time that the read will wait on a select call to see if
>> any
>> + * bytes are available for reading. If the timeout expires the method
>> + * returns zero to indicate no bytes were read.
>> + *
>> * @param fd
>> * the socket file descriptor to read
>> * @param data
>> @@ -238,7 +243,9 @@
>> * @param count
>> * the maximum number of bytes to read
>> * @param timeout
>> - * the length of time to wait for the bytes, in
>> milliseconds
>> + * the length of time to wait for the bytes, in
>> milliseconds; or
>> + * zero to indicate no timeout applied. When there is no
>> timeout
>> + * applied the read may block based upon socket options.
>> * @return number of bytes read, or zero if there were no bytes
>> available
>> * before the timeout occurred, or -1 to indicate the socket is
>> * closed
>> @@ -314,11 +321,13 @@
>> * the max number of bytes to receive
>> * @param timeout
>> * the max time the read operation should block waiting for
>> data
>> - * @return int the actual number of bytes read
>> + * @return the actual number of bytes read
>> * @throws IOException
>> * @throws SocketException
>> * if an error occurs while reading
>> + * @deprecated use {@link #read(FileDescriptor, byte[], int, int,
>> int)}
>> */
>> + @Deprecated
>> public native int receiveStream(FileDescriptor aFD, byte[] data,
>> int offset, int count, int timeout) throws IOException;
>>
>> @@ -482,7 +491,9 @@
>> * @throws IOException
>> * @throws SocketException
>> * if an error occurs while writing
>> + * @deprecated use {@link #write(FileDescriptor, byte[], int, int)}
>> */
>> + @Deprecated
>> public native int sendStream(FileDescriptor fd, byte[] data, int
>> offset,
>> int count) throws IOException;
>>
>>
>> Modified:
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/OSNetworkSystem.c
>> URL:
>> http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/OSNetworkSystem.c?rev=721444&r1=721443&r2=721444&view=diff
>>
>> ==============================================================================
>> ---
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/OSNetworkSystem.c
>> (original)
>> +++
>> harmony/enhanced/classlib/trunk/modules/luni/src/main/native/luni/shared/OSNetworkSystem.c
>> Fri Nov 28 04:08:30 2008
>> @@ -339,7 +339,7 @@
>> /* Read directly into the byte array */
>> result =
>> Java_org_apache_harmony_luni_platform_OSNetworkSystem_readDirect
>> - (env, thiz, fd, (jlong) (IDATA)message + offset, count, timeout);
>> + (env, thiz, fd, (jlong) (IDATA)(message + offset), count, timeout);
>>
>> /* If the pointer was to a copy it needs to be released */
>> if (isCopy == JNI_TRUE) {
>> @@ -361,32 +361,38 @@
>> */
>> JNIEXPORT jint JNICALL
>> Java_org_apache_harmony_luni_platform_OSNetworkSystem_readDirect
>> - (JNIEnv * env, jobject thiz, jobject fileDescriptor, jlong address,
>> + (JNIEnv * env, jobject thiz, jobject fd, jlong address,
>> jint count, jint timeout)
>> {
>> PORT_ACCESS_FROM_ENV(env);
>> hysocket_t hysocketP;
>> - jbyte *message = (jbyte *) (IDATA)address;
>> + U_8 *message = (U_8 *)(IDATA)address;
>> I_32 result, localCount;
>>
>> - hysocketP = getJavaIoFileDescriptorContentsAsAPointer(env,
>> fileDescriptor);
>> + hysocketP = getJavaIoFileDescriptorContentsAsAPointer(env, fd);
>>
>> - /* Check and potentially wait to see if any bytes available */
>> - result = selectRead(env, hysocketP, timeout * 1000, FALSE);
>> - if (0 > result) {
>> - if (result == HYPORT_ERROR_SOCKET_TIMEOUT) {
>> - return (jint) 0; // return zero bytes to indicate timeout
>> + /* A non-zero timeout will first check, and potentially wait, to see if
>> any
>> + * bytes are available
>> + */
>> + if (timeout != 0) {
>> + result = selectRead(env, hysocketP, timeout * 1000, FALSE);
>> + if (0 > result) {
>> + if (result == HYPORT_ERROR_SOCKET_TIMEOUT) {
>> + return (jint) 0; // return zero bytes to indicate timeout
>> + }
>> + throwJavaNetSocketException(env, result);
>> + return (jint) 0; // Unused, exception takes precedence
>> }
>> - throwJavaNetSocketException(env, result);
>> - return (jint) 0; // Unused, exception takes precedence
>> }
>>
>> /* Limit size of read to 64k bytes */
>> localCount = (count < 65536) ? count : 65536;
>> -
>> - result =
>> - hysock_read(hysocketP, (U_8 *) message, localCount, HYSOCK_NOFLAGS);
>> + result = hysock_read(hysocketP, message, localCount, HYSOCK_NOFLAGS);
>> if (0 > result) {
>> + if (HYPORT_ERROR_SOCKET_WOULDBLOCK == result) {
>> + /* We were asked to read on a nonblocking socket and there is no
>> data available */
>> + return (jint) 0;
>> + }
>> throwJavaNetSocketException(env, result);
>> return (jint) 0;
>> }
>> @@ -395,6 +401,7 @@
>> return (0 == result) ? (jint) - 1 : (jint) result;
>> }
>>
>> +
>> /*
>> * Class: org_apache_harmony_luni_platform_OSNetworkSystem
>> * Method: write
>> @@ -415,7 +422,7 @@
>> /* Write directly from the byte array */
>> result =
>> Java_org_apache_harmony_luni_platform_OSNetworkSystem_writeDirect
>> - (env, thiz, fd, (jlong)((IDATA) message + offset), count);
>> + (env, thiz, fd, (jlong) (IDATA)(message + offset), count);
>>
>>
>> /* If the pointer was to a copy it needs to be released */
>> @@ -1622,6 +1629,9 @@
>> }
>> }
>>
>> +/*
>> + * Deprecated. Use
>> Java_org_apache_harmony_luni_platform_OSNetworkSystem_read
>> + */
>> JNIEXPORT jint JNICALL
>> Java_org_apache_harmony_luni_platform_OSNetworkSystem_receiveStream
>> (JNIEnv * env, jobject thiz, jobject fileDescriptor, jbyteArray data,
>> @@ -1682,9 +1692,7 @@
>>
>>
>> /*
>> - * Class: org_apache_harmony_luni_platform_OSNetworkSystem
>> - * Method: sendStream
>> - * Signature: (Ljava/io/FileDescriptor;[BII)I
>> + * Deprecated : use
>> Java_org_apache_harmony_luni_platform_OSNetworkSystem_write
>> */
>> JNIEXPORT jint JNICALL
>> Java_org_apache_harmony_luni_platform_OSNetworkSystem_sendStream
>>
>>
>>
>