From dbad320bf3a4ae44717aa8dff4ec1791a3820259 Mon Sep 17 00:00:00 2001 From: Grace Kloba Date: Thu, 24 Sep 2009 12:27:14 -0700 Subject: [PATCH] ResultTransport needs a default value. If the thread is ununlocked by something else other than CallbackProxy's notify(), it can have a null value. Fix http://b/issue?id=2131842 --- core/java/android/webkit/CallbackProxy.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/java/android/webkit/CallbackProxy.java b/core/java/android/webkit/CallbackProxy.java index 1ec769b62659b..37efdb0248b80 100644 --- a/core/java/android/webkit/CallbackProxy.java +++ b/core/java/android/webkit/CallbackProxy.java @@ -116,6 +116,10 @@ class CallbackProxy extends Handler { // Private result object private E mResult; + public ResultTransport(E defaultResult) { + mResult = defaultResult; + } + public synchronized void setResult(E result) { mResult = result; } @@ -819,7 +823,7 @@ class CallbackProxy extends Handler { public boolean shouldOverrideUrlLoading(String url) { // We have a default behavior if no client exists so always send the // message. - ResultTransport res = new ResultTransport(); + ResultTransport res = new ResultTransport(false); Message msg = obtainMessage(OVERRIDE_URL); msg.getData().putString("url", url); msg.obj = res;