OSDN Git Service

Use List instead of array in network logging API.
authorPavel Grafov <pgrafov@google.com>
Fri, 28 Apr 2017 18:09:38 +0000 (19:09 +0100)
committerPavel Grafov <pgrafov@google.com>
Fri, 28 Apr 2017 18:31:00 +0000 (19:31 +0100)
Bug: 37625453
Test: runtest --path frameworks/base/services/tests/servicestests/src/com/android/server/devicepolicy/NetworkEventTest.java
Test: ts-tradefed run cts -m CtsDevicePolicyManagerTestCases -t com.android.cts.devicepolicy.DeviceOwnerTest#testNetworkLoggingWithSingleUser
Change-Id: Icba7e3178202e0e650689d98c4010a9b40c6a53c

api/current.txt
api/system-current.txt
api/test-current.txt
core/java/android/app/admin/DnsEvent.java
services/tests/servicestests/src/com/android/server/devicepolicy/NetworkEventTest.java

index bc74a0a..67d7310 100644 (file)
@@ -6532,7 +6532,7 @@ package android.app.admin {
 
   public final class DnsEvent extends android.app.admin.NetworkEvent implements android.os.Parcelable {
     method public java.lang.String getHostname();
-    method public java.net.InetAddress[] getInetAddresses();
+    method public java.util.List<java.net.InetAddress> getInetAddresses();
     method public int getTotalResolvedAddressCount();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.admin.DnsEvent> CREATOR;
index 1d3299e..efc8486 100644 (file)
@@ -6780,7 +6780,7 @@ package android.app.admin {
 
   public final class DnsEvent extends android.app.admin.NetworkEvent implements android.os.Parcelable {
     method public java.lang.String getHostname();
-    method public java.net.InetAddress[] getInetAddresses();
+    method public java.util.List<java.net.InetAddress> getInetAddresses();
     method public int getTotalResolvedAddressCount();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.admin.DnsEvent> CREATOR;
index df4b94a..42bcfe5 100644 (file)
@@ -6562,7 +6562,7 @@ package android.app.admin {
 
   public final class DnsEvent extends android.app.admin.NetworkEvent implements android.os.Parcelable {
     method public java.lang.String getHostname();
-    method public java.net.InetAddress[] getInetAddresses();
+    method public java.util.List<java.net.InetAddress> getInetAddresses();
     method public int getTotalResolvedAddressCount();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.app.admin.DnsEvent> CREATOR;
index 87f86b5..c21725f 100644 (file)
@@ -21,6 +21,9 @@ import android.os.Parcelable;
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 
 /**
  * A class that represents a DNS lookup event.
@@ -62,16 +65,17 @@ public final class DnsEvent extends NetworkEvent implements Parcelable {
     }
 
     /** Returns (possibly a subset of) the IP addresses returned. */
-    public InetAddress[] getInetAddresses() {
-        final int length = ipAddresses != null ? ipAddresses.length : 0;
-        final InetAddress[] inetAddresses = new InetAddress[length];
-        for (int i = 0; i < length; i++) {
+    public List<InetAddress> getInetAddresses() {
+        if (ipAddresses == null || ipAddresses.length == 0) {
+            return Collections.emptyList();
+        }
+        final List<InetAddress> inetAddresses = new ArrayList<>(ipAddresses.length);
+        for (final String ipAddress : ipAddresses) {
             try {
                 // ipAddress is already an address, not a host name, no DNS resolution will happen.
-                inetAddresses[i] = InetAddress.getByName(ipAddresses[i]);
+                inetAddresses.add(InetAddress.getByName(ipAddress));
             } catch (UnknownHostException e) {
                 // Should never happen as we aren't passing a host name.
-                inetAddresses[i] = InetAddress.getLoopbackAddress();
             }
         }
         return inetAddresses;
@@ -79,7 +83,7 @@ public final class DnsEvent extends NetworkEvent implements Parcelable {
 
     /**
      * Returns the number of IP addresses returned from the DNS lookup event. May be different from
-     * the length of the array returned by {@link #getInetAddresses()} if there were too many
+     * the length of the list returned by {@link #getInetAddresses()} if there were too many
      * addresses to log.
      */
     public int getTotalResolvedAddressCount() {
index caa26e1..db317a0 100644 (file)
@@ -53,9 +53,10 @@ public class NetworkEventTest extends DpmTestBase {
         DnsEvent unparceledEvent = p.readParcelable(NetworkEventTest.class.getClassLoader());
         p.recycle();
         assertEquals(event.getHostname(), unparceledEvent.getHostname());
-        assertEquals(event.getInetAddresses()[0], unparceledEvent.getInetAddresses()[0]);
-        assertEquals(event.getInetAddresses()[1], unparceledEvent.getInetAddresses()[1]);
-        assertEquals(event.getTotalResolvedAddressCount(), unparceledEvent.getTotalResolvedAddressCount());
+        assertEquals(event.getInetAddresses().get(0), unparceledEvent.getInetAddresses().get(0));
+        assertEquals(event.getInetAddresses().get(1), unparceledEvent.getInetAddresses().get(1));
+        assertEquals(event.getTotalResolvedAddressCount(),
+                unparceledEvent.getTotalResolvedAddressCount());
         assertEquals(event.getPackageName(), unparceledEvent.getPackageName());
         assertEquals(event.getTimestamp(), unparceledEvent.getTimestamp());
     }