Merge "Android-ify SocketOptions.IP_MULTICAST_IF2"
diff --git a/JavaLibrary.mk b/JavaLibrary.mk
index bbe2345..5f9cceb 100644
--- a/JavaLibrary.mk
+++ b/JavaLibrary.mk
@@ -87,6 +87,7 @@
 LOCAL_JAVACFLAGS := $(local_javac_flags)
 LOCAL_DX_FLAGS := --core-library
 LOCAL_MODULE_TAGS := optional
+LOCAL_JAVA_LANGUAGE_VERSION := 1.8
 LOCAL_MODULE := core-all
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
 LOCAL_REQUIRED_MODULES := tzdata
@@ -101,6 +102,7 @@
 LOCAL_JAVACFLAGS := $(local_javac_flags)
 LOCAL_DX_FLAGS := --core-library
 LOCAL_MODULE_TAGS := optional
+LOCAL_JAVA_LANGUAGE_VERSION := 1.8
 LOCAL_MODULE := core-oj
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
 LOCAL_JAVA_LIBRARIES := core-all
@@ -117,6 +119,7 @@
 LOCAL_JAVACFLAGS := $(local_javac_flags)
 LOCAL_DX_FLAGS := --core-library
 LOCAL_MODULE_TAGS := optional
+LOCAL_JAVA_LANGUAGE_VERSION := 1.8
 LOCAL_MODULE := core-libart
 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/JavaLibrary.mk
 LOCAL_JAVA_LIBRARIES := core-all
@@ -135,6 +138,7 @@
 LOCAL_DX_FLAGS := --core-library
 LOCAL_MODULE_TAGS := optional
 LOCAL_DEX_PREOPT := false
+LOCAL_JAVA_LANGUAGE_VERSION := 1.8
 LOCAL_MODULE := core-oj-testdex
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
 LOCAL_JAVA_LIBRARIES := core-all
@@ -151,6 +155,7 @@
 LOCAL_DX_FLAGS := --core-library
 LOCAL_MODULE_TAGS := optional
 LOCAL_DEX_PREOPT := false
+LOCAL_JAVA_LANGUAGE_VERSION := 1.8
 LOCAL_MODULE := core-libart-testdex
 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/JavaLibrary.mk
 LOCAL_JAVA_LIBRARIES := core-all
@@ -218,6 +223,7 @@
 LOCAL_JAVACFLAGS := $(local_javac_flags)
 LOCAL_DX_FLAGS := --core-library
 LOCAL_MODULE_TAGS := optional
+LOCAL_JAVA_LANGUAGE_VERSION := 1.8
 LOCAL_MODULE := core-all-hostdex
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
 LOCAL_REQUIRED_MODULES := tzdata-host
@@ -232,6 +238,7 @@
 LOCAL_JAVACFLAGS := $(local_javac_flags)
 LOCAL_DX_FLAGS := --core-library
 LOCAL_MODULE_TAGS := optional
+LOCAL_JAVA_LANGUAGE_VERSION := 1.8
 LOCAL_MODULE := core-oj-hostdex
 LOCAL_NOTICE_FILE := $(LOCAL_PATH)/ojluni/NOTICE
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
@@ -248,6 +255,7 @@
 LOCAL_JAVACFLAGS := $(local_javac_flags)
 LOCAL_DX_FLAGS := --core-library
 LOCAL_MODULE_TAGS := optional
+LOCAL_JAVA_LANGUAGE_VERSION := 1.8
 LOCAL_MODULE := core-libart-hostdex
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/JavaLibrary.mk
 LOCAL_JAVA_LIBRARIES := core-oj-hostdex
diff --git a/java_tests_blacklist b/java_tests_blacklist
index 97782ea..c0fbc88 100644
--- a/java_tests_blacklist
+++ b/java_tests_blacklist
@@ -1,7 +1,5 @@
 luni/src/test/java/tests/security/cert/X509CRLSelector2Test.java
 luni/src/test/java/tests/security/cert/X509CertSelectorTest.java
-luni/src/test/java/libcore/net/url/UrlUtilsTest.java
 luni/src/test/java/libcore/java/util/zip/Zip64Test.java
 luni/src/test/java/libcore/java/util/zip/Zip64FileTest.java
-luni/src/test/java/libcore/java/util/zip/ZipEntryTest.java
 luni/src/test/java/libcore/java/security/cert/X509CertificateTest.java
diff --git a/luni/src/main/native/NetworkUtilities.cpp b/luni/src/main/native/NetworkUtilities.cpp
index e357b4a..b285a01 100644
--- a/luni/src/main/native/NetworkUtilities.cpp
+++ b/luni/src/main/native/NetworkUtilities.cpp
@@ -116,8 +116,11 @@
     }
 
     // Get the byte array that stores the IP address bytes in the InetAddress.
-    static jmethodID bytesMid = env->GetMethodID(JniConstants::inetAddressClass, "getAddressInternal", "()[B");
+    static jmethodID bytesMid = env->GetMethodID(JniConstants::inetAddressClass, "getAddress", "()[B");
     ScopedLocalRef<jbyteArray> addressBytes(env, reinterpret_cast<jbyteArray>(env->CallObjectMethod(inetAddress, bytesMid)));
+    if (env->ExceptionCheck()) {
+        return false;
+    }
     if (addressBytes.get() == NULL) {
         jniThrowNullPointerException(env, NULL);
         return false;
diff --git a/luni/src/test/java/libcore/io/OsTest.java b/luni/src/test/java/libcore/io/OsTest.java
index d2c4058..552c2a1 100644
--- a/luni/src/test/java/libcore/io/OsTest.java
+++ b/luni/src/test/java/libcore/io/OsTest.java
@@ -49,7 +49,7 @@
     fis.close();
 
     ServerSocket s = new ServerSocket();
-    assertTrue(S_ISSOCK(Libcore.os.fstat(s.getImpl().getFileDescriptor()).st_mode));
+    assertTrue(S_ISSOCK(Libcore.os.fstat(s.getImpl().getFD$()).st_mode));
     s.close();
   }
 
diff --git a/luni/src/test/java/libcore/java/io/FileDescriptorTest.java b/luni/src/test/java/libcore/java/io/FileDescriptorTest.java
index adaa931..3e82690 100644
--- a/luni/src/test/java/libcore/java/io/FileDescriptorTest.java
+++ b/luni/src/test/java/libcore/java/io/FileDescriptorTest.java
@@ -37,7 +37,7 @@
     fis.close();
 
     ServerSocket s = new ServerSocket();
-    assertTrue(s.getImpl().getFileDescriptor().isSocket$());
+    assertTrue(s.getImpl().getFD$().isSocket$());
     s.close();
   }
 }
diff --git a/luni/src/test/java/libcore/java/sql/OldPreparedStatementTest.java b/luni/src/test/java/libcore/java/sql/OldPreparedStatementTest.java
index 8fd8665..9c99e62 100755
--- a/luni/src/test/java/libcore/java/sql/OldPreparedStatementTest.java
+++ b/luni/src/test/java/libcore/java/sql/OldPreparedStatementTest.java
@@ -272,8 +272,7 @@
         String[] queries2 = {
                 "update zoo set name='Masha', family='cat' where id=;",
                 "insert into hutch (id, animal_id, address) values (1, ?,'Birds-house, 1');",
-                "insert into hutch (id, animal_id, address) values (?, 1, 'Horse-house, 5');",
-                "create view address as select address from hutch where animal_id=?"};
+                "insert into hutch (id, animal_id, address) values (?, 1, 'Horse-house, 5');"};
 
         for (int i = 0; i < queries2.length; i++) {
             PreparedStatement ps = null;
@@ -324,41 +323,40 @@
 
     // TODO Crashes VM. Fix later.
     public void testExecuteUpdate() throws SQLException {
-          String[] queries1 = { "insert into hutch (id, animal_id, address) values (1, ?, 'Birds-house, 1');",
-                              "insert into hutch (id, animal_id, address) values (?, 1, 'Horse-house, 5');",
-                              "create view address as select address from hutch where animal_id=2" };
+        String[] queries1 = { "insert into hutch (id, animal_id, address) values (1, ?, 'Birds-house, 1');",
+                "insert into hutch (id, animal_id, address) values (?, 1, 'Horse-house, 5');"};
 
-          for (int i = 0; i < queries1.length; i++) {
-              PreparedStatement ps = null;
-              try {
-                  ps = conn.prepareStatement(queries1[i]);
-                  ps.executeUpdate();
-                  fail("SQLException is not thrown for query: " + queries1[i]);
-          } catch(SQLException sqle) {
-              // expected
-          } finally {
-              try {
-                  ps.close();
-              } catch(Exception ee) {}
-          }
-      }
+        for (int i = 0; i < queries1.length; i++) {
+            PreparedStatement ps = null;
+            try {
+                ps = conn.prepareStatement(queries1[i]);
+                ps.executeUpdate();
+                fail("SQLException is not thrown for query: " + queries1[i]);
+            } catch(SQLException sqle) {
+                // expected
+            } finally {
+                try {
+                    ps.close();
+                } catch(Exception ee) {}
+            }
+        }
 
-          String query = "update zoo set name='Masha', family='cat' where id=?;";
-          PreparedStatement ps = null;
-          try {
-              ps = conn.prepareStatement(query);
-              ps.setInt(1, 2);
-              int updateCount = ps.executeUpdate();
-              assertEquals(1, updateCount);
-              ps.setInt(1, 1);
-              int updateCount1 = ps.executeUpdate();
-              assertEquals(1, updateCount1);
-          } finally {
-              try {
-                  ps.close();
-              } catch(Exception ee) {}
-          }
-      }
+        String query = "update zoo set name='Masha', family='cat' where id=?;";
+        PreparedStatement ps = null;
+        try {
+            ps = conn.prepareStatement(query);
+            ps.setInt(1, 2);
+            int updateCount = ps.executeUpdate();
+            assertEquals(1, updateCount);
+            ps.setInt(1, 1);
+            int updateCount1 = ps.executeUpdate();
+            assertEquals(1, updateCount1);
+        } finally {
+            try {
+                ps.close();
+            } catch(Exception ee) {}
+        }
+    }
 
     /**
      * TODO Doesn't pass. according to spec, it is possible to invoke the
diff --git a/luni/src/test/java/libcore/java/util/zip/ZipEntryTest.java b/luni/src/test/java/libcore/java/util/zip/ZipEntryTest.java
index c7667b9..bf10c3e 100644
--- a/luni/src/test/java/libcore/java/util/zip/ZipEntryTest.java
+++ b/luni/src/test/java/libcore/java/util/zip/ZipEntryTest.java
@@ -145,23 +145,28 @@
     zipFile.close();
   }
 
-  public void testMaxLengthExtra_zip64() throws Exception {
-    // Not quite the max length (65535), but large enough that there's no space
-    // for the zip64 extended info header.
-    byte[] maxLengthExtra = new byte[65530];
 
-    File f = createTemporaryZipFile();
-    ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(f)),
-            true /* forceZip64 */);
-    ZipEntry ze = new ZipEntry("x");
-
-    ze.setExtra(maxLengthExtra);
-    try {
-      out.putNextEntry(ze);
-      fail();
-    } catch (ZipException expected) {
-    }
-  }
+  // TODO: This test does not compile because we need to add a ZipOutputStream constructor
+  // that forces zip64. This also needs followup changes in ZipInputStream et al. to assume zip64
+  // if the header says so, and to not depend purely on the entry length.
+  //
+  // public void testMaxLengthExtra_zip64() throws Exception {
+  //   // Not quite the max length (65535), but large enough that there's no space
+  //   // for the zip64 extended info header.
+  //   byte[] maxLengthExtra = new byte[65530];
+  //
+  //   File f = createTemporaryZipFile();
+  //   ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(f)),
+  //           true /* forceZip64 */);
+  //   ZipEntry ze = new ZipEntry("x");
+  //
+  //   ze.setExtra(maxLengthExtra);
+  //   try {
+  //     out.putNextEntry(ze);
+  //     fail();
+  //   } catch (ZipException expected) {
+  //   }
+  // }
 
 
   public void testTooLongComment() throws Exception {
diff --git a/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParametersTestDSA.java b/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParametersTestDSA.java
index 24820ed..4918fdc 100644
--- a/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParametersTestDSA.java
+++ b/luni/src/test/java/libcore/javax/crypto/spec/AlgorithmParametersTestDSA.java
@@ -22,46 +22,78 @@
 
 public class AlgorithmParametersTestDSA extends AlgorithmParametersTest {
 
+    /*
+     * Parameters generated with OpenSSL:
+     * openssl dsaparam -genkey 1024 -C
+     */
     private static final byte[] P = new byte[] {
-            (byte) 0x00, (byte) 0xB9, (byte) 0x53, (byte) 0xA4, (byte) 0xBB,
-            (byte) 0xC8, (byte) 0xFD, (byte) 0x94, (byte) 0x4B, (byte) 0xC0,
-            (byte) 0xD4, (byte) 0x6B, (byte) 0xA9, (byte) 0xAB, (byte) 0x5A,
-            (byte) 0x1E, (byte) 0x85, (byte) 0x7E, (byte) 0x87, (byte) 0x38,
-            (byte) 0x79, (byte) 0x1C, (byte) 0xBF, (byte) 0xCF, (byte) 0x32,
-            (byte) 0x5A, (byte) 0x45, (byte) 0xF8, (byte) 0xE4, (byte) 0x08,
-            (byte) 0x28, (byte) 0xA4, (byte) 0x12, (byte) 0x8A, (byte) 0x9D,
-            (byte) 0x06, (byte) 0x53, (byte) 0x1C, (byte) 0xAA, (byte) 0x6A,
-            (byte) 0x21, (byte) 0xC1, (byte) 0x95, (byte) 0xF8, (byte) 0xAA,
-            (byte) 0xB2, (byte) 0xB8, (byte) 0x43, (byte) 0x38, (byte) 0x86,
-            (byte) 0x15, (byte) 0x94, (byte) 0xCF, (byte) 0x40, (byte) 0xA5,
-            (byte) 0x0D, (byte) 0xF3, (byte) 0x9A, (byte) 0x49, (byte) 0x12,
-            (byte) 0x72, (byte) 0x64, (byte) 0x11, (byte) 0xDD, (byte) 0x85};
+            (byte) 0xE6, (byte) 0x41, (byte) 0x58, (byte) 0x77, (byte) 0x76,
+            (byte) 0x5A, (byte) 0x4A, (byte) 0x53, (byte) 0xF1, (byte) 0xD6,
+            (byte) 0xC8, (byte) 0x7D, (byte) 0x67, (byte) 0x1F, (byte) 0x2F,
+            (byte) 0xFA, (byte) 0xDE, (byte) 0xB7, (byte) 0xAA, (byte) 0xCD,
+            (byte) 0xD7, (byte) 0x5D, (byte) 0xD0, (byte) 0xE9, (byte) 0xB1,
+            (byte) 0xDA, (byte) 0xFE, (byte) 0x42, (byte) 0xBE, (byte) 0xCC,
+            (byte) 0x42, (byte) 0x52, (byte) 0x2E, (byte) 0x01, (byte) 0xD2,
+            (byte) 0x16, (byte) 0xB1, (byte) 0x5B, (byte) 0xC4, (byte) 0x42,
+            (byte) 0xF9, (byte) 0x55, (byte) 0x0F, (byte) 0xE2, (byte) 0xD5,
+            (byte) 0x01, (byte) 0xD2, (byte) 0x7E, (byte) 0x22, (byte) 0xF6,
+            (byte) 0xC1, (byte) 0xFE, (byte) 0x5C, (byte) 0x6A, (byte) 0xCF,
+            (byte) 0x82, (byte) 0x1B, (byte) 0x5C, (byte) 0x46, (byte) 0x66,
+            (byte) 0x8B, (byte) 0xAF, (byte) 0xDF, (byte) 0x44, (byte) 0xE2,
+            (byte) 0x0E, (byte) 0xA3, (byte) 0x58, (byte) 0xF7, (byte) 0xA3,
+            (byte) 0x24, (byte) 0xE3, (byte) 0x84, (byte) 0xA6, (byte) 0x16,
+            (byte) 0xE0, (byte) 0xCA, (byte) 0x72, (byte) 0x55, (byte) 0x07,
+            (byte) 0xA0, (byte) 0x99, (byte) 0x7B, (byte) 0xF8, (byte) 0xB1,
+            (byte) 0x5A, (byte) 0x84, (byte) 0x36, (byte) 0x5A, (byte) 0xC8,
+            (byte) 0x6A, (byte) 0xFE, (byte) 0xA6, (byte) 0xB4, (byte) 0x1B,
+            (byte) 0x3A, (byte) 0x0A, (byte) 0x00, (byte) 0x6B, (byte) 0x72,
+            (byte) 0xDC, (byte) 0x0C, (byte) 0xD1, (byte) 0x09, (byte) 0x25,
+            (byte) 0x11, (byte) 0x68, (byte) 0x6B, (byte) 0x75, (byte) 0xDE,
+            (byte) 0x2C, (byte) 0x1A, (byte) 0xC2, (byte) 0x3A, (byte) 0xCB,
+            (byte) 0xA0, (byte) 0x17, (byte) 0xCA, (byte) 0x2D, (byte) 0xEE,
+            (byte) 0xA2, (byte) 0x5A, (byte) 0x9D, (byte) 0x1F, (byte) 0x33,
+            (byte) 0x1B, (byte) 0x07, (byte) 0x6D,
+    };
     private static final byte[] Q = new byte[] {
-            (byte) 0x00, (byte) 0xF8, (byte) 0x51, (byte) 0x6A, (byte) 0x92,
-            (byte) 0xCB, (byte) 0x47, (byte) 0x95, (byte) 0x18, (byte) 0x1F,
-            (byte) 0x7E, (byte) 0xD8, (byte) 0x71, (byte) 0x05, (byte) 0xB6,
-            (byte) 0x26, (byte) 0x4D, (byte) 0x52, (byte) 0x94, (byte) 0xFA,
-            (byte) 0x5D};
+            (byte) 0x9B, (byte) 0x39, (byte) 0xD0, (byte) 0x02, (byte) 0x0F,
+            (byte) 0xE9, (byte) 0x96, (byte) 0x16, (byte) 0xC5, (byte) 0x25,
+            (byte) 0xF7, (byte) 0x94, (byte) 0xA9, (byte) 0x2C, (byte) 0xD0,
+            (byte) 0x25, (byte) 0x5B, (byte) 0x6E, (byte) 0xE0, (byte) 0x8F,
+    };
     private static final byte[] G = new byte[] {
-            (byte) 0x2B, (byte) 0xF5, (byte) 0x91, (byte) 0x47, (byte) 0xC8,
-            (byte) 0xF1, (byte) 0x79, (byte) 0x75, (byte) 0x2A, (byte) 0x8E,
-            (byte) 0x40, (byte) 0x7E, (byte) 0xF5, (byte) 0xA5, (byte) 0x14,
-            (byte) 0x98, (byte) 0x97, (byte) 0xE8, (byte) 0xC5, (byte) 0x5E,
-            (byte) 0x7A, (byte) 0x39, (byte) 0xFE, (byte) 0x3B, (byte) 0x68,
-            (byte) 0x06, (byte) 0x85, (byte) 0xD4, (byte) 0xDC, (byte) 0xA5,
-            (byte) 0xF1, (byte) 0xC1, (byte) 0x82, (byte) 0x45, (byte) 0x98,
-            (byte) 0xD3, (byte) 0x06, (byte) 0xE2, (byte) 0x4A, (byte) 0x45,
-            (byte) 0xD7, (byte) 0xF5, (byte) 0x57, (byte) 0x18, (byte) 0x55,
-            (byte) 0x05, (byte) 0xD4, (byte) 0x74, (byte) 0x6A, (byte) 0x9E,
-            (byte) 0x2D, (byte) 0x42, (byte) 0xDF, (byte) 0xC2, (byte) 0x88,
-            (byte) 0x95, (byte) 0x97, (byte) 0xA8, (byte) 0x7D, (byte) 0x11,
-            (byte) 0x55, (byte) 0x9C, (byte) 0x7C, (byte) 0x9F};
+            (byte) 0x5E, (byte) 0x9C, (byte) 0x95, (byte) 0x5F, (byte) 0x7E,
+            (byte) 0x91, (byte) 0x47, (byte) 0x4D, (byte) 0x68, (byte) 0xA4,
+            (byte) 0x1C, (byte) 0x44, (byte) 0x3B, (byte) 0xEC, (byte) 0x0A,
+            (byte) 0x7E, (byte) 0x59, (byte) 0x54, (byte) 0xF7, (byte) 0xEF,
+            (byte) 0x42, (byte) 0xFB, (byte) 0x63, (byte) 0x95, (byte) 0x08,
+            (byte) 0x2F, (byte) 0x4A, (byte) 0xD3, (byte) 0xBC, (byte) 0x79,
+            (byte) 0x9D, (byte) 0xBA, (byte) 0xD8, (byte) 0x8A, (byte) 0x83,
+            (byte) 0x84, (byte) 0xAE, (byte) 0x5B, (byte) 0x26, (byte) 0x80,
+            (byte) 0xB3, (byte) 0xFB, (byte) 0x9C, (byte) 0xA3, (byte) 0xCF,
+            (byte) 0xF4, (byte) 0x0A, (byte) 0xD5, (byte) 0xB6, (byte) 0x65,
+            (byte) 0x65, (byte) 0x1A, (byte) 0x4F, (byte) 0xC0, (byte) 0x86,
+            (byte) 0x3B, (byte) 0xE6, (byte) 0xFB, (byte) 0x4E, (byte) 0x9E,
+            (byte) 0x49, (byte) 0x0A, (byte) 0x8C, (byte) 0x77, (byte) 0x2D,
+            (byte) 0x93, (byte) 0x0B, (byte) 0xCA, (byte) 0x81, (byte) 0x07,
+            (byte) 0x09, (byte) 0xC4, (byte) 0x71, (byte) 0xFD, (byte) 0xC8,
+            (byte) 0xC7, (byte) 0xD1, (byte) 0xA3, (byte) 0xD0, (byte) 0xBB,
+            (byte) 0x7D, (byte) 0x92, (byte) 0x74, (byte) 0x8B, (byte) 0x3B,
+            (byte) 0x2A, (byte) 0x45, (byte) 0x1F, (byte) 0x5D, (byte) 0x85,
+            (byte) 0x90, (byte) 0xE3, (byte) 0xFB, (byte) 0x0E, (byte) 0x16,
+            (byte) 0xBA, (byte) 0x8A, (byte) 0xDE, (byte) 0x10, (byte) 0x0F,
+            (byte) 0xE0, (byte) 0x0F, (byte) 0x37, (byte) 0xA7, (byte) 0xC1,
+            (byte) 0xDC, (byte) 0xBC, (byte) 0x00, (byte) 0xB8, (byte) 0x24,
+            (byte) 0x0F, (byte) 0xF6, (byte) 0x5F, (byte) 0xB1, (byte) 0xA8,
+            (byte) 0x9A, (byte) 0xDB, (byte) 0x9F, (byte) 0x36, (byte) 0x54,
+            (byte) 0x45, (byte) 0xBD, (byte) 0xC0, (byte) 0xE8, (byte) 0x27,
+            (byte) 0x82, (byte) 0xC9, (byte) 0x75,
+    };
 
 
     public AlgorithmParametersTestDSA() {
         super("DSA", new AlgorithmParameterSignatureHelper<DSAParameterSpec>(
                 "DSA", DSAParameterSpec.class), new DSAParameterSpec(
-                new BigInteger(P), new BigInteger(Q), new BigInteger(G)));
+                new BigInteger(1, P), new BigInteger(1, Q), new BigInteger(1, G)));
     }
 
 }
diff --git a/ojluni/src/main/java/java/net/Inet4Address.java b/ojluni/src/main/java/java/net/Inet4Address.java
index 11ee7c7..57da1c4 100755
--- a/ojluni/src/main/java/java/net/Inet4Address.java
+++ b/ojluni/src/main/java/java/net/Inet4Address.java
@@ -332,11 +332,6 @@
         return addr;
     }
 
-    @Override
-    public byte[] getAddressInternal() {
-        return getAddress();
-    }
-
     /**
      * Returns the IP address string in textual presentation form.
      *
diff --git a/ojluni/src/main/java/java/net/Inet6Address.java b/ojluni/src/main/java/java/net/Inet6Address.java
index 67487ff..ca19211 100755
--- a/ojluni/src/main/java/java/net/Inet6Address.java
+++ b/ojluni/src/main/java/java/net/Inet6Address.java
@@ -622,11 +622,6 @@
         return ipaddress.clone();
     }
 
-    @Override
-    public byte[] getAddressInternal() {
-        return ipaddress;
-    }
-
     /**
      * Returns the numeric scopeId, if this instance is associated with
      * an interface. If no scoped_id is set, the returned value is zero.
diff --git a/ojluni/src/main/java/java/net/InetAddress.java b/ojluni/src/main/java/java/net/InetAddress.java
index 019c4ac..d8057ff 100755
--- a/ojluni/src/main/java/java/net/InetAddress.java
+++ b/ojluni/src/main/java/java/net/InetAddress.java
@@ -577,16 +577,6 @@
     }
 
     /**
-     * Called from native code. Same as {@code getAddress}, but for internal users.
-     *
-     * @return
-     */
-    public byte[] getAddressInternal() {
-        return null;
-    }
-
-
-    /**
      * Returns the IP address string in textual presentation.
      *
      * @return  the raw IP address in a string format.
@@ -1005,4 +995,4 @@
     String getHostName(boolean check) {
         throw new UnsupportedOperationException();
     }
-}
\ No newline at end of file
+}
diff --git a/ojluni/src/main/java/java/net/SocketImpl.java b/ojluni/src/main/java/java/net/SocketImpl.java
index 18044ab..d2123e2 100755
--- a/ojluni/src/main/java/java/net/SocketImpl.java
+++ b/ojluni/src/main/java/java/net/SocketImpl.java
@@ -222,7 +222,14 @@
      * @return  the value of this socket's <code>fd</code> field.
      * @see     java.net.SocketImpl#fd
      */
-    public FileDescriptor getFileDescriptor() {
+    protected FileDescriptor getFileDescriptor() {
+        return fd;
+    }
+
+    /**
+     * @hide used by java.nio tests
+     */
+    public FileDescriptor getFD$() {
         return fd;
     }