Fix other Disconnect msg senders

We changed the params on these messages from an ApnContext to a
Pair<ApnContext, Integer>.  There were some call sites using the old
style and leading to errors.

bug:24115252
Change-Id: Ice3f075b3b93b9e76c0f0be7923f5ae2041f7ab1
diff --git a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
index 3700020..1094fdd 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
@@ -2096,9 +2096,12 @@
             }
             // this can only happen if our exit has been called - we're already disconnected
             if (mApnContexts == null) return;
-            for (ApnContext apnContext : mApnContexts.keySet()) {
+            for (ConnectionParams cp : mApnContexts.values()) {
+                final ApnContext apnContext = cp.mApnContext;
+                final Pair<ApnContext, Integer> pair =
+                        new Pair<ApnContext, Integer>(apnContext, cp.mConnectionGeneration);
                 log("DcNetworkAgent: [unwanted]: disconnect apnContext=" + apnContext);
-                Message msg = mDct.obtainMessage(DctConstants.EVENT_DISCONNECT_DONE, apnContext);
+                Message msg = mDct.obtainMessage(DctConstants.EVENT_DISCONNECT_DONE, pair);
                 DisconnectParams dp = new DisconnectParams(apnContext, apnContext.getReason(), msg);
                 DataConnection.this.sendMessage(DataConnection.this.
                         obtainMessage(EVENT_DISCONNECT, dp));
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
index cf82db3..bdb41ab 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
@@ -1047,7 +1047,10 @@
                         str = "cleanUpConnection: tearing down" + (disconnectAll ? " all" : "");
                         if (DBG) log(str + "apnContext=" + apnContext);
                         apnContext.requestLog(str);
-                        Message msg = obtainMessage(DctConstants.EVENT_DISCONNECT_DONE, apnContext);
+                        Pair<ApnContext, Integer> pair =
+                                new Pair<ApnContext, Integer>(apnContext,
+                                apnContext.getConnectionGeneration());
+                        Message msg = obtainMessage(DctConstants.EVENT_DISCONNECT_DONE, pair);
                         if (disconnectAll) {
                             apnContext.getDcAc().tearDownAll(apnContext.getReason(), msg);
                         } else {
@@ -1314,7 +1317,7 @@
 
         Message msg = obtainMessage();
         msg.what = DctConstants.EVENT_DATA_SETUP_COMPLETE;
-        msg.obj = apnContext;
+        msg.obj = new Pair<ApnContext, Integer>(apnContext, connectionGeneration);
         dcac.bringUp(apnContext, getInitialMaxRetry(), profileId, radioTech,
                 mAutoAttachOnCreation.get(), msg, connectionGeneration);