Move reserved offer teardown into a function
This function will also be called from the ReservedServerOffer itself
when it encounters an error that should release the reservation.
Test: TH
Change-Id: Icf49147dd5f1335e9a3b8706da5bbba03c556758
diff --git a/service/src/com/android/server/L2capNetworkProvider.java b/service/src/com/android/server/L2capNetworkProvider.java
index e710461..787cab5 100644
--- a/service/src/com/android/server/L2capNetworkProvider.java
+++ b/service/src/com/android/server/L2capNetworkProvider.java
@@ -209,12 +209,19 @@
// Note that the reserved offer gets torn down when the reservation goes away, even if
// there are active (non-reservation) requests for said offer.
- mReservedServerOffers.remove(reservedOffer);
- reservedOffer.tearDown();
- mProvider.unregisterNetworkOffer(reservedOffer);
+ destroyAndUnregisterReservedOffer(reservedOffer);
}
}
+ private void destroyAndUnregisterReservedOffer(ReservedServerOffer reservedOffer) {
+ // Ensure the offer still exists if this was posted on the handler.
+ if (!mReservedServerOffers.contains(reservedOffer)) return;
+ mReservedServerOffers.remove(reservedOffer);
+
+ reservedOffer.tearDown();
+ mProvider.unregisterNetworkOffer(reservedOffer);
+ }
+
private class ReservedServerOffer implements NetworkOfferCallback {
private final NetworkCapabilities mReservedCapabilities;
private final BluetoothServerSocket mServerSocket;