Source:
<code>AuthenticationResult acquireTokenWithAssertion() throws AuthenticationException { final String methodName = ":acquireTokenWithAssertion"; Logger.v(TAG + methodName, "Try to get new access token with the provided assertion.", mAuthRequest.getLogInfo(), null); HttpUtil.throwIfNetworkNotAvailable(mContext); final AuthenticationResult result; final String samlAssertion = mAuthRequest.getSamlAssertion(); final String assertionType = mAuthRequest.getAssertionType(); try { final JWSBuilder jwsBuilder = new JWSBuilder(); final Oauth2 oauthRequest = new Oauth2(mAuthRequest, mWebRequestHandler, jwsBuilder); result = oauthRequest.refreshTokenUsingAssertion(samlAssertion, assertionType); if (result != null && StringExtensions.isNullOrBlank(result.getRefreshToken())) { Logger.i(TAG + methodName, "Refresh token is not returned or empty", ""); } } catch (final ServerRespondingWithRetryableException exc) { Logger.e(TAG + methodName, "Error in assertion for request. ", "Request: " + mAuthRequest.getLogInfo() + " " + ExceptionExtensions.getExceptionMessage(exc) + " " + Log.getStackTraceString(exc), ADALError.AUTH_FAILED_NO_TOKEN, null); throw new AuthenticationException( ADALError.AUTH_FAILED_NO_TOKEN, ExceptionExtensions.getExceptionMessage(exc), new AuthenticationException(ADALError.SERVER_ERROR, exc.getMessage(), exc)); <START> } catch (final IOException | AuthenticationException exc) { <END> Logger.e(TAG + methodName, "Error in assertion for request.", "Request: " + mAuthRequest.getLogInfo() + " " + ExceptionExtensions.getExceptionMessage(exc) + " " + Log.getStackTraceString(exc), ADALError.AUTH_FAILED_NO_TOKEN, null); throw new AuthenticationException( ADALError.AUTH_FAILED_NO_TOKEN, ExceptionExtensions.getExceptionMessage(exc), new AuthenticationException(ADALError.SERVER_ERROR, exc.getMessage(), exc)); } return result; }</code><technical_language>catch block for IOExcepton, AuthenticationException appears logic ServerRespondingWithRetryableException; is reason collapse catch block</technical_language>

Target:
AuthenticationResult acquireTokenWithAssertion() throws AuthenticationException { final String methodName = ":acquireTokenWithAssertion"; Logger.v(TAG + methodName, "Try to get new access token with the provided assertion.", mAuthRequest.getLogInfo(), null); HttpUtil.throwIfNetworkNotAvailable(mContext); final AuthenticationResult result; final String samlAssertion = mAuthRequest.getSamlAssertion(); final String assertionType = mAuthRequest.getAssertionType(); try { final JWSBuilder jwsBuilder = new JWSBuilder(); final Oauth2 oauthRequest = new Oauth2(mAuthRequest, mWebRequestHandler, jwsBuilder); result = oauthRequest.refreshTokenUsingAssertion(samlAssertion, assertionType); if (result != null && StringExtensions.isNullOrBlank(result.getRefreshToken())) { Logger.w(TAG + methodName, "Refresh token is not returned or empty"); } } catch (final IOException | AuthenticationException exc) { Logger.e(TAG + methodName, "Error in assertion for request.", "Request: " + mAuthRequest.getLogInfo() + " " + ExceptionExtensions.getExceptionMessage(exc) + " " + Log.getStackTraceString(exc), ADALError.AUTH_FAILED_NO_TOKEN, null); throw new AuthenticationException( ADALError.AUTH_FAILED_NO_TOKEN, ExceptionExtensions.getExceptionMessage(exc), new AuthenticationException(ADALError.SERVER_ERROR, exc.getMessage(), exc)); } return result; }