src/share/native/java/net/InetAddress.c

Print this page

        

@@ -34,18 +34,20 @@
 
 jclass ia_class;
 jfieldID ia_addressID;
 jfieldID ia_familyID;
 jfieldID ia_preferIPv6AddressID;
+jfieldID ia_hostNameID;
 
 /*
  * Class:     java_net_InetAddress
  * Method:    init
  * Signature: ()V
  */
 JNIEXPORT void JNICALL
 Java_java_net_InetAddress_init(JNIEnv *env, jclass cls) {
+    if (ia_hostNameID == NULL) {
     jclass c = (*env)->FindClass(env,"java/net/InetAddress");
     CHECK_NULL(c);
     ia_class = (*env)->NewGlobalRef(env, c);
     CHECK_NULL(ia_class);
     ia_addressID = (*env)->GetFieldID(env, ia_class, "address", "I");

@@ -52,6 +54,8 @@
     CHECK_NULL(ia_addressID);
     ia_familyID = (*env)->GetFieldID(env, ia_class, "family", "I");
     CHECK_NULL(ia_familyID);
     ia_preferIPv6AddressID = (*env)->GetStaticFieldID(env, ia_class, "preferIPv6Address", "Z");
     CHECK_NULL(ia_preferIPv6AddressID);
+        ia_hostNameID = (*env)->GetFieldID(env, ia_class, "hostName", "Ljava/lang/String;");
+    }
 }