--- old/src/java.base/unix/native/libnet/PlainSocketImpl.c 2019-04-18 10:58:27.000000000 +0100 +++ new/src/java.base/unix/native/libnet/PlainSocketImpl.c 2019-04-18 10:58:27.000000000 +0100 @@ -43,7 +43,6 @@ jfieldID psi_localportID; jfieldID psi_timeoutID; jfieldID psi_trafficClassID; -jfieldID psi_serverSocketID; jfieldID psi_fdLockID; jfieldID psi_closePendingID; @@ -128,9 +127,6 @@ CHECK_NULL(psi_timeoutID); psi_trafficClassID = (*env)->GetFieldID(env, cls, "trafficClass", "I"); CHECK_NULL(psi_trafficClassID); - psi_serverSocketID = (*env)->GetFieldID(env, cls, "serverSocket", - "Ljava/net/ServerSocket;"); - CHECK_NULL(psi_serverSocketID); psi_fdLockID = (*env)->GetFieldID(env, cls, "fdLock", "Ljava/lang/Object;"); CHECK_NULL(psi_fdLockID); @@ -156,10 +152,10 @@ /* * Class: java_net_PlainSocketImpl * Method: socketCreate - * Signature: (Z)V */ + * Signature: (ZZ)V */ JNIEXPORT void JNICALL Java_java_net_PlainSocketImpl_socketCreate(JNIEnv *env, jobject this, - jboolean stream) { + jboolean stream, jboolean server) { jobject fdObj, ssObj; int fd; int type = (stream ? SOCK_STREAM : SOCK_DGRAM); @@ -202,8 +198,7 @@ * If this is a server socket then enable SO_REUSEADDR * automatically and set to non blocking. */ - ssObj = (*env)->GetObjectField(env, this, psi_serverSocketID); - if (ssObj != NULL) { + if (server) { int arg = 1; SET_NONBLOCKING(fd); if (NET_SetSockOpt(fd, SOL_SOCKET, SO_REUSEADDR, (char*)&arg,