From 21f85d60551a2056aaa136976300128a68980580 Mon Sep 17 00:00:00 2001 From: Josh Burton Date: Fri, 1 May 2020 23:53:24 +1200 Subject: [PATCH] [flutter_appauth] Fixes null pointer exceptions when attempting to return a result for a null pending operation (#109) This situation can occur when too many operations are started at one time. Once one operation completes, there is no longer a pending operation so any operations that complete after will throw a null pointer exception. --- .../flutterappauth/FlutterAppauthPlugin.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/flutter_appauth/android/src/main/java/io/crossingthestreams/flutterappauth/FlutterAppauthPlugin.java b/flutter_appauth/android/src/main/java/io/crossingthestreams/flutterappauth/FlutterAppauthPlugin.java index 93709c5e..cbec78ac 100644 --- a/flutter_appauth/android/src/main/java/io/crossingthestreams/flutterappauth/FlutterAppauthPlugin.java +++ b/flutter_appauth/android/src/main/java/io/crossingthestreams/flutterappauth/FlutterAppauthPlugin.java @@ -344,13 +344,17 @@ private void finishWithTokenError(AuthorizationException ex) { private void finishWithSuccess(Object data) { - pendingOperation.result.success(data); - pendingOperation = null; + if (pendingOperation != null) { + pendingOperation.result.success(data); + pendingOperation = null; + } } private void finishWithError(String errorCode, String errorMessage) { - pendingOperation.result.error(errorCode, errorMessage, null); - pendingOperation = null; + if (pendingOperation != null) { + pendingOperation.result.error(errorCode, errorMessage, null); + pendingOperation = null; + } } private void finishWithDiscoveryError(AuthorizationException ex) {