Merge "Remove unneeded 'transient' modifiers"
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/HandshakeCompletedEventTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/HandshakeCompletedEventTest.java
index bb2265f..74c3a7f 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/HandshakeCompletedEventTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/HandshakeCompletedEventTest.java
@@ -25,6 +25,7 @@
import java.security.KeyStore;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
+import java.util.Base64;
import javax.net.ssl.HandshakeCompletedEvent;
import javax.net.ssl.HandshakeCompletedListener;
import javax.net.ssl.KeyManager;
@@ -39,7 +40,6 @@
import javax.net.ssl.X509TrustManager;
import javax.security.cert.X509Certificate;
import junit.framework.TestCase;
-import libcore.io.Base64;
import org.apache.harmony.xnet.tests.support.mySSLSession;
/**
@@ -535,7 +535,7 @@
* for the result.
*/
private KeyManager[] getKeyManagers(String keys) throws Exception {
- byte[] bytes = Base64.decode(keys.getBytes());
+ byte[] bytes = Base64.getDecoder().decode(keys.getBytes());
InputStream inputStream = new ByteArrayInputStream(bytes);
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLServerSocketTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLServerSocketTest.java
index 5a0cf6f..117a1a0 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLServerSocketTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLServerSocketTest.java
@@ -18,8 +18,6 @@
import junit.framework.TestCase;
-import libcore.io.Base64;
-
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -27,6 +25,7 @@
import java.security.KeyStore;
import java.security.SecureRandom;
import java.util.Arrays;
+import java.util.Base64;
import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
@@ -391,7 +390,7 @@
*/
private KeyManager[] getKeyManagers() throws Exception {
String keys = (useBKS ? SERVER_KEYS_BKS : SERVER_KEYS_JKS);
- byte[] bytes = Base64.decode(keys.getBytes());
+ byte[] bytes = Base64.getDecoder().decode(keys.getBytes());
InputStream inputStream = new ByteArrayInputStream(bytes);
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLSessionTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLSessionTest.java
index 018de8c..fde1ff8 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLSessionTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLSessionTest.java
@@ -26,6 +26,7 @@
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import java.util.Arrays;
+import java.util.Base64;
import javax.net.ssl.ExtendedSSLSession;
import javax.net.ssl.KeyManager;
@@ -42,7 +43,6 @@
import org.apache.harmony.tests.javax.net.ssl.HandshakeCompletedEventTest.TestTrustManager;
import junit.framework.TestCase;
-import libcore.io.Base64;
import libcore.java.security.StandardNames;
public class SSLSessionTest extends TestCase {
@@ -643,7 +643,7 @@
* for the result.
*/
private KeyStore getKeyStore(String keys) throws Exception {
- byte[] bytes = Base64.decode(keys.getBytes());
+ byte[] bytes = Base64.getDecoder().decode(keys.getBytes());
InputStream inputStream = new ByteArrayInputStream(bytes);
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLSocketTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLSocketTest.java
index a791a77..5712a48 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLSocketTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/SSLSocketTest.java
@@ -24,6 +24,7 @@
import java.security.KeyStore;
import java.security.SecureRandom;
import java.util.Arrays;
+import java.util.Base64;
import javax.net.ssl.HandshakeCompletedEvent;
import javax.net.ssl.HandshakeCompletedListener;
import javax.net.ssl.KeyManager;
@@ -35,7 +36,6 @@
import javax.net.ssl.TrustManager;
import javax.security.cert.X509Certificate;
import junit.framework.TestCase;
-import libcore.io.Base64;
import libcore.java.security.StandardNames;
import org.apache.harmony.tests.javax.net.ssl.HandshakeCompletedEventTest.TestTrustManager;
@@ -587,7 +587,7 @@
* for the result.
*/
private KeyManager[] getKeyManagers(String keys) throws Exception {
- byte[] bytes = Base64.decode(keys.getBytes());
+ byte[] bytes = Base64.getDecoder().decode(keys.getBytes());
InputStream inputStream = new ByteArrayInputStream(bytes);
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
diff --git a/luni/src/test/java/libcore/java/nio/channels/DatagramChannelMulticastTest.java b/luni/src/test/java/libcore/java/nio/channels/DatagramChannelMulticastTest.java
index 52146ee..cf3af30 100644
--- a/luni/src/test/java/libcore/java/nio/channels/DatagramChannelMulticastTest.java
+++ b/luni/src/test/java/libcore/java/nio/channels/DatagramChannelMulticastTest.java
@@ -19,7 +19,11 @@
import junit.framework.AssertionFailedError;
import junit.framework.TestCase;
+import android.system.ErrnoException;
+import android.system.StructPollfd;
+
import java.io.IOException;
+import java.net.DatagramSocket;
import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
@@ -36,6 +40,8 @@
import java.util.ArrayList;
import java.util.Enumeration;
+import static android.system.OsConstants.POLLIN;
+
/**
* Tests associated with multicast behavior of DatagramChannel.
* These tests require IPv6 multicasting enabled network.
@@ -774,6 +780,7 @@
// Send a message. It should be received.
String msg1 = "Hello1";
sendMessage(sendingChannel, msg1, groupSocketAddress);
+ blockUntilAvailableOrTimeout(receivingChannel.socket(), 1000);
InetSocketAddress sourceAddress1 = (InetSocketAddress) receivingChannel.receive(receiveBuffer);
assertEquals(sourceAddress1, sendingAddress);
assertEquals(msg1, new String(receiveBuffer.array(), 0, receiveBuffer.position()));
@@ -784,6 +791,7 @@
// Send a message. It should be filtered.
String msg2 = "Hello2";
sendMessage(sendingChannel, msg2, groupSocketAddress);
+ blockUntilAvailableOrTimeout(receivingChannel.socket(), 1000);
receiveBuffer.position(0);
InetSocketAddress sourceAddress2 = (InetSocketAddress) receivingChannel.receive(receiveBuffer);
assertNull(sourceAddress2);
@@ -794,6 +802,7 @@
// Send a message. It should be received.
String msg3 = "Hello3";
sendMessage(sendingChannel, msg3, groupSocketAddress);
+ blockUntilAvailableOrTimeout(receivingChannel.socket(), 1000);
receiveBuffer.position(0);
InetSocketAddress sourceAddress3 = (InetSocketAddress) receivingChannel.receive(receiveBuffer);
assertEquals(sourceAddress3, sendingAddress);
@@ -1237,5 +1246,13 @@
throw new AssertionFailedError("Unable to find local IPv6 address for " + networkInterface);
}
+ private static void blockUntilAvailableOrTimeout(DatagramSocket s, int timeout) {
+ try {
+ StructPollfd[] pollFds = new StructPollfd[]{ new StructPollfd() };
+ pollFds[0].fd = s.getFileDescriptor$();
+ pollFds[0].events = (short) POLLIN;
+ android.system.Os.poll(pollFds, timeout);
+ } catch (ErrnoException ignored) { }
+ }
}
diff --git a/ojluni/src/main/java/sun/security/pkcs/PKCS9Attribute.java b/ojluni/src/main/java/sun/security/pkcs/PKCS9Attribute.java
index 9ae4a99..d847b10 100644
--- a/ojluni/src/main/java/sun/security/pkcs/PKCS9Attribute.java
+++ b/ojluni/src/main/java/sun/security/pkcs/PKCS9Attribute.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -331,11 +331,11 @@
{new Byte(DerValue.tag_Sequence)} // SignatureTimestampToken
};
- private static final Class[] VALUE_CLASSES = new Class[18];
+ private static final Class<?>[] VALUE_CLASSES = new Class<?>[18];
static {
try {
- Class str = Class.forName("[Ljava.lang.String;");
+ Class<?> str = Class.forName("[Ljava.lang.String;");
VALUE_CLASSES[0] = null; // not used
VALUE_CLASSES[1] = str; // EMailAddress
@@ -489,8 +489,8 @@
if (val.length != 2)
throw new IOException("PKCS9Attribute doesn't have two components");
- // get the oid
+ // get the oid
oid = val[0].getOID();
byte[] content = val[1].toByteArray();
DerValue[] elems = new DerInputStream(content).getSet(1);
diff --git a/ojluni/src/main/java/sun/security/pkcs/SignerInfo.java b/ojluni/src/main/java/sun/security/pkcs/SignerInfo.java
index 3a024b0..e5f3e1d 100644
--- a/ojluni/src/main/java/sun/security/pkcs/SignerInfo.java
+++ b/ojluni/src/main/java/sun/security/pkcs/SignerInfo.java
@@ -327,7 +327,7 @@
authenticatedAttributes.getAttributeValue(
PKCS9Attribute.CONTENT_TYPE_OID);
if (contentType == null ||
- !contentType.equals(content.contentType))
+ !contentType.equals((Object)content.contentType))
return null; // contentType does not match, bad SignerInfo
// now, check message digest
diff --git a/ojluni/src/main/java/sun/security/x509/AVA.java b/ojluni/src/main/java/sun/security/x509/AVA.java
index f28ab9b..8a85d7b 100644
--- a/ojluni/src/main/java/sun/security/x509/AVA.java
+++ b/ojluni/src/main/java/sun/security/x509/AVA.java
@@ -379,8 +379,8 @@
// encode as PrintableString unless value contains
// non-PrintableString chars
- if (this.oid.equals(PKCS9Attribute.EMAIL_ADDRESS_OID) ||
- (this.oid.equals(X500Name.DOMAIN_COMPONENT_OID) &&
+ if (this.oid.equals((Object)PKCS9Attribute.EMAIL_ADDRESS_OID) ||
+ (this.oid.equals((Object)X500Name.DOMAIN_COMPONENT_OID) &&
PRESERVE_OLD_DC_ENCODING == false)) {
// EmailAddress and DomainComponent must be IA5String
return new DerValue(DerValue.tag_IA5String,
@@ -396,7 +396,7 @@
private DerValue parseString
(Reader in, int c, int format, StringBuilder temp) throws IOException {
- List<Byte> embeddedHex = new ArrayList<Byte>();
+ List<Byte> embeddedHex = new ArrayList<>();
boolean isPrintableString = true;
boolean escape = false;
boolean leadingChar = true;
@@ -514,8 +514,8 @@
// encode as PrintableString unless value contains
// non-PrintableString chars
- if (this.oid.equals(PKCS9Attribute.EMAIL_ADDRESS_OID) ||
- (this.oid.equals(X500Name.DOMAIN_COMPONENT_OID) &&
+ if (this.oid.equals((Object)PKCS9Attribute.EMAIL_ADDRESS_OID) ||
+ (this.oid.equals((Object)X500Name.DOMAIN_COMPONENT_OID) &&
PRESERVE_OLD_DC_ENCODING == false)) {
// EmailAddress and DomainComponent must be IA5String
return new DerValue(DerValue.tag_IA5String, temp.toString());
diff --git a/ojluni/src/main/java/sun/security/x509/AlgorithmId.java b/ojluni/src/main/java/sun/security/x509/AlgorithmId.java
index dd10832..1bdb1b8 100644
--- a/ojluni/src/main/java/sun/security/x509/AlgorithmId.java
+++ b/ojluni/src/main/java/sun/security/x509/AlgorithmId.java
@@ -235,7 +235,7 @@
if (algName != null) {
return algName;
}
- if ((params != null) && algid.equals(specifiedWithECDSA_oid)) {
+ if ((params != null) && algid.equals((Object)specifiedWithECDSA_oid)) {
try {
AlgorithmId paramsId =
AlgorithmId.parse(new DerValue(getEncodedParams()));
@@ -276,7 +276,7 @@
public boolean equals(AlgorithmId other) {
boolean paramsEqual =
(params == null ? other.params == null : params.equals(other.params));
- return (algid.equals(other.algid) && paramsEqual);
+ return (algid.equals((Object)other.algid) && paramsEqual);
}
/**
@@ -304,7 +304,7 @@
* they are the same algorithm, ignoring algorithm parameters.
*/
public final boolean equals(ObjectIdentifier id) {
- return algid.equals(id);
+ return algid.equals((Object)id);
}
/**
diff --git a/ojluni/src/main/java/sun/security/x509/DistributionPointName.java b/ojluni/src/main/java/sun/security/x509/DistributionPointName.java
index 19d6289..4409dc0 100644
--- a/ojluni/src/main/java/sun/security/x509/DistributionPointName.java
+++ b/ojluni/src/main/java/sun/security/x509/DistributionPointName.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
diff --git a/ojluni/src/main/java/sun/security/x509/NetscapeCertTypeExtension.java b/ojluni/src/main/java/sun/security/x509/NetscapeCertTypeExtension.java
index 78f731b..735efdd 100644
--- a/ojluni/src/main/java/sun/security/x509/NetscapeCertTypeExtension.java
+++ b/ojluni/src/main/java/sun/security/x509/NetscapeCertTypeExtension.java
@@ -221,7 +221,7 @@
/**
* Get the attribute value.
*/
- public Object get(String name) throws IOException {
+ public Boolean get(String name) throws IOException {
return Boolean.valueOf(isSet(getPosition(name)));
}
@@ -314,15 +314,15 @@
if (isSet(getPosition(SSL_CLIENT)) ||
isSet(getPosition(S_MIME)) ||
isSet(getPosition(OBJECT_SIGNING)))
- keyUsage.set(keyUsage.DIGITAL_SIGNATURE, val);
+ keyUsage.set(KeyUsageExtension.DIGITAL_SIGNATURE, val);
if (isSet(getPosition(SSL_SERVER)))
- keyUsage.set(keyUsage.KEY_ENCIPHERMENT, val);
+ keyUsage.set(KeyUsageExtension.KEY_ENCIPHERMENT, val);
if (isSet(getPosition(SSL_CA)) ||
isSet(getPosition(S_MIME_CA)) ||
isSet(getPosition(OBJECT_SIGNING_CA)))
- keyUsage.set(keyUsage.KEY_CERTSIGN, val);
+ keyUsage.set(KeyUsageExtension.KEY_CERTSIGN, val);
} catch (IOException e) { }
return keyUsage.getBits();
}
diff --git a/ojluni/src/main/java/sun/security/x509/RDN.java b/ojluni/src/main/java/sun/security/x509/RDN.java
index 1463fd1..ed46abe 100644
--- a/ojluni/src/main/java/sun/security/x509/RDN.java
+++ b/ojluni/src/main/java/sun/security/x509/RDN.java
@@ -26,17 +26,11 @@
package sun.security.x509;
-import java.lang.reflect.*;
import java.io.IOException;
import java.io.StringReader;
-import java.security.PrivilegedExceptionAction;
-import java.security.AccessController;
-import java.security.Principal;
import java.util.*;
import sun.security.util.*;
-import sun.security.pkcs.PKCS9Attribute;
-import javax.security.auth.x500.X500Principal;
/**
* RDNs are a set of {attribute = value} assertions. Some of those
@@ -328,7 +322,7 @@
*/
DerValue findAttribute(ObjectIdentifier oid) {
for (int i = 0; i < assertion.length; i++) {
- if (assertion[i].oid.equals(oid)) {
+ if (assertion[i].oid.equals((Object)oid)) {
return assertion[i].value;
}
}
diff --git a/ojluni/src/main/java/sun/security/x509/X500Name.java b/ojluni/src/main/java/sun/security/x509/X500Name.java
index 7b24fa3..6090554 100644
--- a/ojluni/src/main/java/sun/security/x509/X500Name.java
+++ b/ojluni/src/main/java/sun/security/x509/X500Name.java
@@ -28,14 +28,12 @@
import java.lang.reflect.*;
import java.io.IOException;
-import java.io.StringReader;
import java.security.PrivilegedExceptionAction;
import java.security.AccessController;
import java.security.Principal;
import java.util.*;
import sun.security.util.*;
-import sun.security.pkcs.PKCS9Attribute;
import javax.security.auth.x500.X500Principal;
/**
@@ -1392,7 +1390,7 @@
/**
* Constructor object for use by asX500Principal().
*/
- private static final Constructor principalConstructor;
+ private static final Constructor<X500Principal> principalConstructor;
/**
* Field object for use by asX500Name().
@@ -1407,9 +1405,9 @@
PrivilegedExceptionAction<Object[]> pa =
new PrivilegedExceptionAction<Object[]>() {
public Object[] run() throws Exception {
- Class pClass = X500Principal.class;
- Class[] args = new Class[] {X500Name.class};
- Constructor cons = ((Class<?>)pClass).getDeclaredConstructor(args);
+ Class<X500Principal> pClass = X500Principal.class;
+ Class<?>[] args = new Class<?>[] { X500Name.class };
+ Constructor<X500Principal> cons = pClass.getDeclaredConstructor(args);
cons.setAccessible(true);
Field field = pClass.getDeclaredField("thisX500Name");
field.setAccessible(true);
@@ -1418,7 +1416,10 @@
};
try {
Object[] result = AccessController.doPrivileged(pa);
- principalConstructor = (Constructor)result[0];
+ @SuppressWarnings("unchecked")
+ Constructor<X500Principal> constr =
+ (Constructor<X500Principal>)result[0];
+ principalConstructor = constr;
principalField = (Field)result[1];
} catch (Exception e) {
throw new InternalError("Could not obtain X500Principal access", e);
@@ -1435,8 +1436,7 @@
if (x500Principal == null) {
try {
Object[] args = new Object[] {this};
- x500Principal =
- (X500Principal)principalConstructor.newInstance(args);
+ x500Principal = principalConstructor.newInstance(args);
} catch (Exception e) {
throw new RuntimeException("Unexpected exception", e);
}
diff --git a/ojluni/src/main/native/PlainDatagramSocketImpl.c b/ojluni/src/main/native/PlainDatagramSocketImpl.c
index aad8c34..b36e286 100644
--- a/ojluni/src/main/native/PlainDatagramSocketImpl.c
+++ b/ojluni/src/main/native/PlainDatagramSocketImpl.c
@@ -500,6 +500,7 @@
}
if (IS_NULL(addressObj)) {
JNU_ThrowNullPointerException(env, "Null address in peek()");
+ return -1;
}
if (timeout) {
int ret = NET_Timeout(fd, timeout);
@@ -1386,7 +1387,7 @@
default :
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
"Socket option not supported by PlainDatagramSocketImp");
- break;
+ return;
}
@@ -1608,6 +1609,9 @@
#ifdef AF_INET6
#ifdef __linux__
setTTL(env, fd, ttl);
+ if ((*env)->ExceptionCheck(env)) {
+ return;
+ }
if (ipv6_available()) {
setHopLimit(env, fd, ttl);
}
@@ -1830,6 +1834,7 @@
else
NET_ThrowCurrent(env, "setsockopt IP_DROP_MEMBERSHIP failed");
}
+ return;
}
}
diff --git a/ojluni/src/main/native/net_util_md.c b/ojluni/src/main/native/net_util_md.c
index 0dd6c09..49c9779 100644
--- a/ojluni/src/main/native/net_util_md.c
+++ b/ojluni/src/main/native/net_util_md.c
@@ -500,7 +500,9 @@
}
}
-#if defined(__linux__) && defined(AF_INET6)
+#if 0
+// Android-changed: Stripped out unused code. http://b/33250070
+// #if defined(__linux__) && defined(AF_INET6)
/* following code creates a list of addresses from the kernel
@@ -1398,9 +1400,12 @@
return timeout;
}
+#if 0
+// Stripped out unused code.
// http://b/27301951
__attribute__((destructor))
static void netUtilCleanUp() {
if (loRoutes != 0) free(loRoutes);
if (localifs != 0) free(localifs);
}
+#endif