Fix bugs in resolving @link/@see tags
Bug: 177266501
Test: verified in aosp/1573066(Put IKE in BCP) by running
make doc-comment-check-docs
Change-Id: Ifd43aa9f84f7bda0fe0368475f570cf02fcdc8bd
diff --git a/src/java/android/net/ipsec/ike/ChildSaProposal.java b/src/java/android/net/ipsec/ike/ChildSaProposal.java
index 5645c2b..a9877d0 100644
--- a/src/java/android/net/ipsec/ike/ChildSaProposal.java
+++ b/src/java/android/net/ipsec/ike/ChildSaProposal.java
@@ -295,7 +295,7 @@
*
* @param algorithm encryption algorithm to add to ChildSaProposal.
* @param keyLength key length of algorithm. For algorithms that have fixed key length (e.g.
- * 3DES) only {@link SaProposal.KEY_LEN_UNUSED} is allowed.
+ * 3DES) only {@link SaProposal#KEY_LEN_UNUSED} is allowed.
* @return Builder of ChildSaProposal.
*/
// The matching getter is defined in the super class. Please see {@link
diff --git a/src/java/android/net/ipsec/ike/ChildSessionCallback.java b/src/java/android/net/ipsec/ike/ChildSessionCallback.java
index 1dd4530..0e6ba02 100644
--- a/src/java/android/net/ipsec/ike/ChildSessionCallback.java
+++ b/src/java/android/net/ipsec/ike/ChildSessionCallback.java
@@ -83,7 +83,7 @@
* the new set of transforms.
*
* <p>To avoid the initial startup race condition where the transforms have not yet been
- * applied, the {@link onOpened(ChildSessionConfiguration)} callback should be used as the
+ * applied, the {@link #onOpened(ChildSessionConfiguration)} callback should be used as the
* authoritative signal that the socket or tunnel is ready, as it is fired after both transforms
* have had a chance to be applied.
*
@@ -100,15 +100,15 @@
* Session.
*
* <p>When this method is invoked, the caller MUST re-apply the transforms to their {@link
- * IpSecTunnelInterface} via {@link
- * IpSecManager#applyTunnelModeTransform(android.net.IpSecManager.IpSecTunnelInterface, int,
- * IpSecTransform)}.
+ * IpSecTunnelInterface} via IpSecManager#applyTunnelModeTransform(IpSecTunnelInterface, int,
+ * IpSecTransform)
*
- * @param inIpSecTransform IpSecTransform to be used for traffic with {@link PolicyDirection}
- * {@link IpSecManager#DIRECTION_IN}
- * @param outIpSecTransform IpSecTransform to be used for traffic with {@link PolicyDirection}
- * {@link IpSecManager#DIRECTION_OUT}
+ * @param inIpSecTransform IpSecTransform to be used for traffic with {@link
+ * IpSecManager#DIRECTION_IN}
+ * @param outIpSecTransform IpSecTransform to be used for traffic with {@link
+ * IpSecManager#DIRECTION_OUT}
*/
+ // TODO(b/174606949): Use @link tag to reference #applyTunnelModeTransform when it is public.
default void onIpSecTransformsMigrated(
@NonNull IpSecTransform inIpSecTransform, @NonNull IpSecTransform outIpSecTransform) {}
diff --git a/src/java/android/net/ipsec/ike/ChildSessionParams.java b/src/java/android/net/ipsec/ike/ChildSessionParams.java
index e403e30..bf83c7a 100644
--- a/src/java/android/net/ipsec/ike/ChildSessionParams.java
+++ b/src/java/android/net/ipsec/ike/ChildSessionParams.java
@@ -49,7 +49,7 @@
* to have the same DH group as that of the IKE Session, then they need to explicitly set the same
* DH Group in ChildSessionParams.
*
- * @see {@link TunnelModeChildSessionParams} and {@link TransportModeChildSessionParams}
+ * <p>@see {@link TunnelModeChildSessionParams} and {@link TransportModeChildSessionParams}
*/
public abstract class ChildSessionParams {
/** @hide */
diff --git a/src/java/android/net/ipsec/ike/IkeSaProposal.java b/src/java/android/net/ipsec/ike/IkeSaProposal.java
index ad2bbe1..cc343d8 100644
--- a/src/java/android/net/ipsec/ike/IkeSaProposal.java
+++ b/src/java/android/net/ipsec/ike/IkeSaProposal.java
@@ -219,7 +219,7 @@
*
* @param algorithm encryption algorithm to add to IkeSaProposal.
* @param keyLength key length of algorithm. For algorithms that have fixed key length (e.g.
- * 3DES) only {@link SaProposal.KEY_LEN_UNUSED} is allowed.
+ * 3DES) only {@link SaProposal#KEY_LEN_UNUSED} is allowed.
* @return Builder of IkeSaProposal.
*/
// The matching getter is defined in the super class. Please see {@link
diff --git a/src/java/android/net/ipsec/ike/IkeSession.java b/src/java/android/net/ipsec/ike/IkeSession.java
index 5dab372..c7c3089 100644
--- a/src/java/android/net/ipsec/ike/IkeSession.java
+++ b/src/java/android/net/ipsec/ike/IkeSession.java
@@ -32,7 +32,7 @@
/**
* This class represents an IKE Session management object that allows for keying and management of
- * {@link IpSecTransform}s.
+ * {@link android.net.IpSecTransform}s.
*
* <p>An IKE/Child Session represents an IKE/Child SA as well as its rekeyed successors. A Child
* Session is bounded by the lifecycle of the IKE Session under which it is set up. Closing an IKE
@@ -71,7 +71,7 @@
* @param userCbExecutor the {@link Executor} upon which all callbacks will be posted. For
* security and consistency, the callbacks posted to this executor MUST be executed serially
* and in the order they were posted, as guaranteed by executors such as {@link
- * ExecutorService.newSingleThreadExecutor()}
+ * java.util.concurrent.Executors#newSingleThreadExecutor()}
* @param ikeSessionCallback the {@link IkeSessionCallback} interface to notify callers of state
* changes within the {@link IkeSession}.
* @param firstChildSessionCallback the {@link ChildSessionCallback} interface to notify callers
@@ -229,12 +229,12 @@
* <p>Implements {@link AutoCloseable#close()}
*
* <p>Upon closure, {@link IkeSessionCallback#onClosed()} or {@link
- * IkeSessionCallback#onClosedExceptionally()} will be fired.
+ * IkeSessionCallback#onClosedExceptionally(IkeException)} will be fired.
*
* <p>Closing an IKE Session implicitly closes any remaining Child Sessions negotiated under it.
- * Users SHOULD stop all outbound traffic that uses these Child Sessions({@link IpSecTransform}
- * pairs) before calling this method. Otherwise IPsec packets will be dropped due to the lack of
- * a valid {@link IpSecTransform}.
+ * Users SHOULD stop all outbound traffic that uses these Child Sessions ({@link
+ * android.net.IpSecTransform} pairs) before calling this method. Otherwise IPsec packets will
+ * be dropped due to the lack of a valid {@link android.net.IpSecTransform}.
*
* <p>Closure of an IKE session will take priority over, and cancel other procedures waiting in
* the queue (but will wait for ongoing locally initiated procedures to complete). After sending
@@ -253,9 +253,9 @@
* <p>Upon closing, {@link IkeSessionCallback#onClosed()} will be fired.
*
* <p>Closing an IKE Session implicitly closes any remaining Child Sessions negotiated under it.
- * Users SHOULD stop all outbound traffic that uses these Child Sessions({@link IpSecTransform}
- * pairs) before calling this method. Otherwise IPsec packets will be dropped due to the lack of
- * a valid {@link IpSecTransform}.
+ * Users SHOULD stop all outbound traffic that uses these Child Sessions ({@link
+ * android.net.IpSecTransform} pairs) before calling this method. Otherwise IPsec packets will
+ * be dropped due to the lack of a valid {@link android.net.IpSecTransform}.
*
* <p>Forcible closure of an IKE session will take priority over, and cancel other procedures
* waiting in the queue. It will also interrupt any ongoing locally initiated procedure.
diff --git a/src/java/android/net/ipsec/ike/IkeSessionParams.java b/src/java/android/net/ipsec/ike/IkeSessionParams.java
index 84b630e..8880b56 100644
--- a/src/java/android/net/ipsec/ike/IkeSessionParams.java
+++ b/src/java/android/net/ipsec/ike/IkeSessionParams.java
@@ -124,9 +124,9 @@
* this MUST migrate all IpSecTunnelInterface instances associated with this IkeSession.
* <li>{@link ChildSessionCallback#onIpSecTransformsMigrated(android.net.IpSecTransform,
* android.net.IpSecTransform)}: this MUST re-apply the migrated transforms to the
- * IpSecTunnelInterface associated with this ChildSessionCallback, via {@link
+ * IpSecTunnelInterface associated with this ChildSessionCallback, via
* android.net.IpSecManager#applyTunnelModeTransform(
- * android.net.IpSecManager.IpSecTunnelInterface, int, android.net.IpSecTransform)}.
+ * android.net.IpSecManager.IpSecTunnelInterface, int, android.net.IpSecTransform).
* </ul>
*
* <p>MOBIKE support is compatible with two Network modes:
@@ -160,7 +160,8 @@
* <p>Checking for MOBIKE use in an IKE Session is done via {@link
* IkeSessionConfiguration#isIkeExtensionEnabled(int)}.
*/
- // TODO(b/175416035): update docs to @link to API for migrating IpSecTunnelInterfaces
+ // TODO(b/175416035): Update docs to @link to API for migrating IpSecTunnelInterfaces
+ // TODO(b/174606949): Use @link tag to reference #applyTunnelModeTransform when it is public
public static final int IKE_OPTION_MOBIKE = 2;
private static final int MIN_IKE_OPTION = IKE_OPTION_ACCEPT_ANY_REMOTE_ID;
@@ -1172,7 +1173,7 @@
*
* <p>This constructor is deprecated since Android S. Apps that use this constructor can
* still expect {@link #build()} to throw if no configured or default network was found. But
- * apps that use {@link #Builder()} MUST NOT expect that behavior anymore.
+ * apps that use #Builder() MUST NOT expect that behavior anymore.
*
* <p>This method is deprecated because it is unnecessary to try resolving a default network
* or to validate network state before IkeSession starts the packet exchanges. It will also
@@ -1181,7 +1182,8 @@
*
* @param context a valid {@link Context} instance.
*/
- // TODO: b/163604823 Deprecate this method
+ // TODO: b/163604823 Deprecate this method and use @link tag to reference #Builder when
+ // #Builder() is exposed.
public Builder(@NonNull Context context) {
this((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE));
}
@@ -1352,13 +1354,13 @@
* EAP-Only authentication is enabled.
*
* <p>Callers may enable EAP-Only authentication by setting {@link
- * IKE_OPTION_EAP_ONLY_AUTH}, which will make IKE library request the remote to use EAP-Only
- * authentication. The remote may opt to reject the request, at which point the received
- * certificates and authentication payload WILL be validated with the provided root CA or
- * system's truststore as usual. Only safe EAP methods as listed in RFC 5998 will be
+ * #IKE_OPTION_EAP_ONLY_AUTH}, which will make IKE library request the remote to use
+ * EAP-Only authentication. The remote may opt to reject the request, at which point the
+ * received certificates and authentication payload WILL be validated with the provided root
+ * CA or system's truststore as usual. Only safe EAP methods as listed in RFC 5998 will be
* accepted for EAP-Only authentication.
*
- * <p>If {@link IKE_OPTION_EAP_ONLY_AUTH} is set, callers MUST configure EAP as the
+ * <p>If {@link #IKE_OPTION_EAP_ONLY_AUTH} is set, callers MUST configure EAP as the
* authentication method and all EAP methods set in EAP Session configuration MUST be safe
* methods that are accepted for EAP-Only authentication. Otherwise callers will get an
* exception when building the {@link IkeSessionParams}
@@ -1369,7 +1371,7 @@
* @see <a href="https://tools.ietf.org/html/rfc5280">RFC 5280, Internet X.509 Public Key
* Infrastructure Certificate and Certificate Revocation List (CRL) Profile</a>
* @see <a href="https://tools.ietf.org/html/rfc5998">RFC 5998, An Extension for EAP-Only
- * Authentication in IKEv2
+ * Authentication in IKEv2</a>
* @param serverCaCert the CA certificate for validating the received server certificate(s).
* If a certificate is provided, it MUST be the root CA used by the server, or
* authentication will fail. If no certificate is provided, any root CA in the system's
@@ -1377,7 +1379,7 @@
* @return Builder this, to facilitate chaining.
*/
// TODO(b/151667921): Consider also supporting configuring EAP method that is not accepted
- // by EAP-Only when {@link IKE_OPTION_EAP_ONLY_AUTH} is set
+ // by EAP-Only when {@link #IKE_OPTION_EAP_ONLY_AUTH} is set
// MissingGetterMatchingBuilder: #getLocalAuthConfig and #getRemoveAuthConfig are defined to
// retrieve authentication configurations
@SuppressLint("MissingGetterMatchingBuilder")
@@ -1515,8 +1517,8 @@
/**
* Adds a internal P_CSCF server request to the {@link IkeSessionParams} being built.
*
- * @param addressFamily the address family. Only {@link OsConstants.AF_INET} and {@link
- * OsConstants.AF_INET6} are allowed.
+ * @param addressFamily the address family. Only {@code AF_INET} and {@code AF_INET6} are
+ * allowed.
* @return Builder this, to facilitate chaining.
*/
// #getConfigurationRequests is defined to retrieve PCSCF server requests
diff --git a/src/java/android/net/ipsec/ike/SaProposal.java b/src/java/android/net/ipsec/ike/SaProposal.java
index fd60a3d..d9afb35 100644
--- a/src/java/android/net/ipsec/ike/SaProposal.java
+++ b/src/java/android/net/ipsec/ike/SaProposal.java
@@ -112,7 +112,7 @@
* Key length unused.
*
* <p>This value should only be used with the Encryption/Ciphering Algorithm that accepts a
- * fixed key size such as {@link ENCRYPTION_ALGORITHM_3DES}.
+ * fixed key size such as {@link #ENCRYPTION_ALGORITHM_3DES}.
*/
public static final int KEY_LEN_UNUSED = 0;
/** AES Encryption/Ciphering Algorithm key length 128 bits. */
diff --git a/src/java/android/net/ipsec/ike/TunnelModeChildSessionParams.java b/src/java/android/net/ipsec/ike/TunnelModeChildSessionParams.java
index 8e9f298..a9009eb 100644
--- a/src/java/android/net/ipsec/ike/TunnelModeChildSessionParams.java
+++ b/src/java/android/net/ipsec/ike/TunnelModeChildSessionParams.java
@@ -324,8 +324,8 @@
* Adds an internal IP address request to the {@link TunnelModeChildSessionParams} being
* built.
*
- * @param addressFamily the address family. Only {@link OsConstants.AF_INET} and {@link
- * OsConstants.AF_INET6} are allowed.
+ * @param addressFamily the address family. Only {@code AF_INET} and {@code AF_INET6} are
+ * allowed
* @return Builder this, to facilitate chaining.
*/
// #getConfigurationRequests has been defined for callers to retrieve internal address
@@ -392,8 +392,8 @@
* Adds an internal DNS server request to the {@link TunnelModeChildSessionParams} being
* built.
*
- * @param addressFamily the address family. Only {@link OsConstants.AF_INET} and {@link
- * OsConstants.AF_INET6} are allowed.
+ * @param addressFamily the address family. Only {@code AF_INET} and {@code AF_INET6} are
+ * allowed
* @return Builder this, to facilitate chaining.
*/
// #getConfigurationRequests has been defined for callers to retrieve internal DNS server
@@ -443,7 +443,7 @@
*
* <p>Only DHCPv4 server requests are supported.
*
- * @param addressFamily the address family. Only {@link OsConstants.AF_INET} is allowed.
+ * @param addressFamily the address family. Only {@code AF_INET} is allowed
* @return Builder this, to facilitate chaining.
*/
// #getConfigurationRequests has been defined for callers to retrieve internal DHCP server
diff --git a/src/java/android/net/ipsec/ike/exceptions/AuthenticationFailedException.java b/src/java/android/net/ipsec/ike/exceptions/AuthenticationFailedException.java
index 1e93ee6..d5fa885 100644
--- a/src/java/android/net/ipsec/ike/exceptions/AuthenticationFailedException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/AuthenticationFailedException.java
@@ -16,6 +16,8 @@
package android.net.ipsec.ike.exceptions;
import android.annotation.NonNull;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
/**
* This exception is thrown when IKE authentication failed.
diff --git a/src/java/android/net/ipsec/ike/exceptions/ChildSaNotFoundException.java b/src/java/android/net/ipsec/ike/exceptions/ChildSaNotFoundException.java
index 6a549ac..35372b3 100644
--- a/src/java/android/net/ipsec/ike/exceptions/ChildSaNotFoundException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/ChildSaNotFoundException.java
@@ -15,6 +15,9 @@
*/
package android.net.ipsec.ike.exceptions;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
+
/**
* This exception is thrown if the remote server received a request for a nonexistent Child SA.
*
diff --git a/src/java/android/net/ipsec/ike/exceptions/FailedCpRequiredException.java b/src/java/android/net/ipsec/ike/exceptions/FailedCpRequiredException.java
index dae882c..3c2e101 100644
--- a/src/java/android/net/ipsec/ike/exceptions/FailedCpRequiredException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/FailedCpRequiredException.java
@@ -15,6 +15,9 @@
*/
package android.net.ipsec.ike.exceptions;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
+
/**
* This exception is thrown if the remote server did not receive a Configuration Payload.
*
diff --git a/src/java/android/net/ipsec/ike/exceptions/IkeInternalException.java b/src/java/android/net/ipsec/ike/exceptions/IkeInternalException.java
index 37f7293..929f544 100644
--- a/src/java/android/net/ipsec/ike/exceptions/IkeInternalException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/IkeInternalException.java
@@ -16,12 +16,14 @@
package android.net.ipsec.ike.exceptions;
import android.annotation.NonNull;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
/**
* IkeInternalException encapsulates all local implementation or resource related exceptions.
*
- * <p>Causes may include exceptions such as {@link IpSecManager.SpiUnavailableException} when the
- * requested SPI resources failed to be allocated.
+ * <p>Causes may include exceptions such as {@link android.net.IpSecManager.SpiUnavailableException}
+ * when the requested SPI resources failed to be allocated.
*/
public final class IkeInternalException extends IkeNonProtocolException {
/**
diff --git a/src/java/android/net/ipsec/ike/exceptions/IkeNetworkLostException.java b/src/java/android/net/ipsec/ike/exceptions/IkeNetworkLostException.java
index d638502..4138768 100644
--- a/src/java/android/net/ipsec/ike/exceptions/IkeNetworkLostException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/IkeNetworkLostException.java
@@ -24,8 +24,8 @@
/**
* IkeNetworkLostException is returned to the caller via {@link
- * IkeSessionCallback#onError(IkeException)} if the underlying Network for the {@link IkeSession}
- * was lost with no alternatives.
+ * IkeSessionCallback#onError(IkeException)} if the underlying Network for the {@link
+ * android.net.ipsec.ike.IkeSession} was lost with no alternatives.
*
* <p>This Exception corresponds to {@link
* android.net.ConnectivityManager.NetworkCallback#onLost(android.net.Network)} being invoked for
diff --git a/src/java/android/net/ipsec/ike/exceptions/InternalAddressFailureException.java b/src/java/android/net/ipsec/ike/exceptions/InternalAddressFailureException.java
index bd95ce1..dca4a91 100644
--- a/src/java/android/net/ipsec/ike/exceptions/InternalAddressFailureException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/InternalAddressFailureException.java
@@ -15,6 +15,9 @@
*/
package android.net.ipsec.ike.exceptions;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
+
/**
* This exception is thrown if the remote server hits an error in assigning an internal IP address.
*
diff --git a/src/java/android/net/ipsec/ike/exceptions/InvalidIkeSpiException.java b/src/java/android/net/ipsec/ike/exceptions/InvalidIkeSpiException.java
index 0a2dd0c..a9b3a27 100644
--- a/src/java/android/net/ipsec/ike/exceptions/InvalidIkeSpiException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/InvalidIkeSpiException.java
@@ -15,6 +15,9 @@
*/
package android.net.ipsec.ike.exceptions;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
+
/**
* This exception is thrown if an IKE message was received with an unrecognized destination SPI.
*
diff --git a/src/java/android/net/ipsec/ike/exceptions/InvalidKeException.java b/src/java/android/net/ipsec/ike/exceptions/InvalidKeException.java
index d58abca..2882138 100644
--- a/src/java/android/net/ipsec/ike/exceptions/InvalidKeException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/InvalidKeException.java
@@ -15,6 +15,9 @@
*/
package android.net.ipsec.ike.exceptions;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
+
/**
* This exception is thrown when the remote server expected a different Diffie-Hellman group.
*
diff --git a/src/java/android/net/ipsec/ike/exceptions/InvalidMajorVersionException.java b/src/java/android/net/ipsec/ike/exceptions/InvalidMajorVersionException.java
index 25eb20d..cdb9e55 100644
--- a/src/java/android/net/ipsec/ike/exceptions/InvalidMajorVersionException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/InvalidMajorVersionException.java
@@ -16,6 +16,8 @@
package android.net.ipsec.ike.exceptions;
import android.annotation.SuppressLint;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
/**
* This exception is thrown when major version of an inbound message is higher than 2.
diff --git a/src/java/android/net/ipsec/ike/exceptions/InvalidMessageIdException.java b/src/java/android/net/ipsec/ike/exceptions/InvalidMessageIdException.java
index 5d95336..043d482 100644
--- a/src/java/android/net/ipsec/ike/exceptions/InvalidMessageIdException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/InvalidMessageIdException.java
@@ -15,6 +15,9 @@
*/
package android.net.ipsec.ike.exceptions;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
+
/**
* This exception is thrown when the remote server received a message with out-of-window-size ID.
*
diff --git a/src/java/android/net/ipsec/ike/exceptions/InvalidSelectorsException.java b/src/java/android/net/ipsec/ike/exceptions/InvalidSelectorsException.java
index ad83d3d..985a4ec 100644
--- a/src/java/android/net/ipsec/ike/exceptions/InvalidSelectorsException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/InvalidSelectorsException.java
@@ -16,6 +16,8 @@
package android.net.ipsec.ike.exceptions;
import android.annotation.NonNull;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
import java.util.Objects;
diff --git a/src/java/android/net/ipsec/ike/exceptions/InvalidSyntaxException.java b/src/java/android/net/ipsec/ike/exceptions/InvalidSyntaxException.java
index 864a9d6..fcf0021 100644
--- a/src/java/android/net/ipsec/ike/exceptions/InvalidSyntaxException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/InvalidSyntaxException.java
@@ -16,6 +16,8 @@
package android.net.ipsec.ike.exceptions;
import android.annotation.NonNull;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
/**
* This exception is thrown if any IKE message has a syntax error.
diff --git a/src/java/android/net/ipsec/ike/exceptions/NoAdditionalSasException.java b/src/java/android/net/ipsec/ike/exceptions/NoAdditionalSasException.java
index 8a4383f..52d485a 100644
--- a/src/java/android/net/ipsec/ike/exceptions/NoAdditionalSasException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/NoAdditionalSasException.java
@@ -15,6 +15,9 @@
*/
package android.net.ipsec.ike.exceptions;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
+
/**
* This exception is thrown if the remote server is unwilling to accept any more Child SAs.
*
diff --git a/src/java/android/net/ipsec/ike/exceptions/NoValidProposalChosenException.java b/src/java/android/net/ipsec/ike/exceptions/NoValidProposalChosenException.java
index 313e6ce..1345c33 100644
--- a/src/java/android/net/ipsec/ike/exceptions/NoValidProposalChosenException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/NoValidProposalChosenException.java
@@ -16,6 +16,8 @@
package android.net.ipsec.ike.exceptions;
import android.annotation.NonNull;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
/**
* This exception is thrown if a SA proposal negotiation failed.
diff --git a/src/java/android/net/ipsec/ike/exceptions/SinglePairRequiredException.java b/src/java/android/net/ipsec/ike/exceptions/SinglePairRequiredException.java
index 6d9792f..7c7590d 100644
--- a/src/java/android/net/ipsec/ike/exceptions/SinglePairRequiredException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/SinglePairRequiredException.java
@@ -15,6 +15,9 @@
*/
package android.net.ipsec.ike.exceptions;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
+
/**
* This exception is thrown if the remote server requires a single pair of addresses as selectors.
*
diff --git a/src/java/android/net/ipsec/ike/exceptions/TemporaryFailureException.java b/src/java/android/net/ipsec/ike/exceptions/TemporaryFailureException.java
index ee1c93c..d47446f 100644
--- a/src/java/android/net/ipsec/ike/exceptions/TemporaryFailureException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/TemporaryFailureException.java
@@ -16,6 +16,8 @@
package android.net.ipsec.ike.exceptions;
import android.annotation.NonNull;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
/**
* This exception is thrown if the remote server declined a request because of a temporary issue.
diff --git a/src/java/android/net/ipsec/ike/exceptions/TsUnacceptableException.java b/src/java/android/net/ipsec/ike/exceptions/TsUnacceptableException.java
index 0486d3d..3feb975 100644
--- a/src/java/android/net/ipsec/ike/exceptions/TsUnacceptableException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/TsUnacceptableException.java
@@ -15,6 +15,9 @@
*/
package android.net.ipsec.ike.exceptions;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
+
/**
* This exception is thrown if Traffic Selectors negotiation failed.
*
diff --git a/src/java/android/net/ipsec/ike/exceptions/UnrecognizedIkeProtocolException.java b/src/java/android/net/ipsec/ike/exceptions/UnrecognizedIkeProtocolException.java
index aadbb6f..d27930a 100644
--- a/src/java/android/net/ipsec/ike/exceptions/UnrecognizedIkeProtocolException.java
+++ b/src/java/android/net/ipsec/ike/exceptions/UnrecognizedIkeProtocolException.java
@@ -16,6 +16,8 @@
package android.net.ipsec.ike.exceptions;
import android.annotation.NonNull;
+import android.net.ipsec.ike.ChildSessionCallback;
+import android.net.ipsec.ike.IkeSessionCallback;
import java.util.Objects;