Add logging to track down bug

bug:8377625
Change-Id: Ifd0c4081a2f1238dbbc39c6904b993e2fb95455a
diff --git a/core/java/android/net/DhcpStateMachine.java b/core/java/android/net/DhcpStateMachine.java
index fd22b10..f140282 100644
--- a/core/java/android/net/DhcpStateMachine.java
+++ b/core/java/android/net/DhcpStateMachine.java
@@ -77,7 +77,7 @@
         RENEW
     };
 
-    private String mInterfaceName;
+    private final String mInterfaceName;
     private boolean mRegisteredForPreDhcpNotification = false;
 
     private static final int BASE = Protocol.BASE_DHCP;
@@ -349,6 +349,7 @@
     private boolean runDhcp(DhcpAction dhcpAction) {
         boolean success = false;
         DhcpResults dhcpResults = new DhcpResults();
+        dhcpResults.linkProperties.mLogMe = true;
 
         if (dhcpAction == DhcpAction.START) {
             /* Stop any existing DHCP daemon before starting new */
diff --git a/core/java/android/net/LinkProperties.java b/core/java/android/net/LinkProperties.java
index 5d13a18..9292e5f 100644
--- a/core/java/android/net/LinkProperties.java
+++ b/core/java/android/net/LinkProperties.java
@@ -20,6 +20,7 @@
 import android.os.Parcelable;
 import android.os.Parcel;
 import android.text.TextUtils;
+import android.util.Log;
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
@@ -57,6 +58,7 @@
     private String mDomains;
     private Collection<RouteInfo> mRoutes = new ArrayList<RouteInfo>();
     private ProxyProperties mHttpProxy;
+    public boolean mLogMe;
 
     public static class CompareResult<T> {
         public Collection<T> removed = new ArrayList<T>();
@@ -75,6 +77,7 @@
 
     public LinkProperties() {
         clear();
+        mLogMe = false;
     }
 
     // copy constructor instead of clone
@@ -91,6 +94,14 @@
     }
 
     public void setInterfaceName(String iface) {
+        if (mLogMe) {
+            Log.d("LinkProperties", "setInterfaceName from " + mIfaceName +
+                    " to " + iface);
+            for (StackTraceElement e : Thread.currentThread().getStackTrace()) {
+                Log.d("LinkProperties", "  " + e.toString());
+            }
+        }
+
         mIfaceName = iface;
         ArrayList<RouteInfo> newRoutes = new ArrayList<RouteInfo>(mRoutes.size());
         for (RouteInfo route : mRoutes) {
@@ -166,6 +177,13 @@
     }
 
     public void clear() {
+        if (mLogMe) {
+            Log.d("LinkProperties", "clear from " + mIfaceName);
+            for (StackTraceElement e : Thread.currentThread().getStackTrace()) {
+                Log.d("LinkProperties", "  " + e.toString());
+            }
+        }
+
         mIfaceName = null;
         mLinkAddresses.clear();
         mDnses.clear();