143 case EPIPE:
144 JNU_ThrowByName(env, "sun/net/ConnectionResetException",
145 "Connection reset");
146 break;
147
148 case EBADF:
149 JNU_ThrowByName(env, "java/net/SocketException",
150 "Socket closed");
151 break;
152
153 case EINTR:
154 JNU_ThrowByName(env, "java/io/InterruptedIOException",
155 "Operation interrupted");
156 break;
157 default:
158 JNU_ThrowByNameWithMessageAndLastError
159 (env, "java/net/SocketException", "Read failed");
160 }
161 }
162 } else {
163 (*env)->SetByteArrayRegion(env, data, off, nread, (jbyte *)bufP);
164 }
165
166 if (bufP != BUF) {
167 free(bufP);
168 }
169 return nread;
170 }
|
143 case EPIPE:
144 JNU_ThrowByName(env, "sun/net/ConnectionResetException",
145 "Connection reset");
146 break;
147
148 case EBADF:
149 JNU_ThrowByName(env, "java/net/SocketException",
150 "Socket closed");
151 break;
152
153 case EINTR:
154 JNU_ThrowByName(env, "java/io/InterruptedIOException",
155 "Operation interrupted");
156 break;
157 default:
158 JNU_ThrowByNameWithMessageAndLastError
159 (env, "java/net/SocketException", "Read failed");
160 }
161 }
162 } else {
163 JVM_callNetworkReadBytes(env, nread);
164 (*env)->SetByteArrayRegion(env, data, off, nread, (jbyte *)bufP);
165 }
166
167 if (bufP != BUF) {
168 free(bufP);
169 }
170 return nread;
171 }
|