Hi Guys, another problem with the new WebView in Jelly Bean (4.1.1): An app using the WebView crashes, when opening an URL that separates its query parameters not using the ampersand character ('&') but e.g. a semi colon (';').
Reproduce: 1) Call the following URL in a WebView: http://www.heise.de/newsticker/meldung/TomTom-baut-um-1643641.html the German heise page will redirect you to http://m.heise.de/newsticker/meldung/TomTom-baut-um-1643641.html?mrw_channel=ho;mrw_channel=ho;from-classic=1 The page will load, but as soon as loading has finished the app will crash with the following stack trace: java.lang.IllegalArgumentException: bad parameter at org.apache.http.client.utils.URLEncodedUtils.parse(URLEncodedUtils.java:139) at org.apache.http.client.utils.URLEncodedUtils.parse(URLEncodedUtils.java:76) at android.webkit.AccessibilityInjector.getAxsUrlParameterValue(AccessibilityInjector.java:406) at android.webkit.AccessibilityInjector.shouldInjectJavaScript(AccessibilityInjector.java:322) at android.webkit.AccessibilityInjector.onPageFinished(AccessibilityInjector.java:281) at android.webkit.WebViewClassic.onPageFinished(WebViewClassic.java:3943) at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:325) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) Taking a look into the code of URLEncodedUtils.parse() (which is indirectly called by WebViewClassic.onPageFinished()) shows why: The code throws the shown exception if a single query parameter contains more than one equals sign ('='). As this class assumes query parameters to be separated by '&' the defect URL shown above has effectively only one query parameter from the view point of the URLEncodedUtils-class and thus this single query parameter has multiple equals signs causing the crash. The stack trace also shows, that the method is called indirectly in the event handler, so that there isn't a valid way to catch the exception. Though the shown URL is defect it occurs in reality and I think the WebView should be a little more tolerant. Best regards Sven -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en