Re: [android-developers] WebView in android 4.1.1 crashes for URLs with a non-standard separation of query parameters
Hi Mark, sorry for posting at the wrong place. I've created issue 35100 (http://code.google.com/p/android/issues/detail?id=35100) 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
Re: [android-developers] WebView in android 4.1.1 crashes for URLs with a non-standard separation of query parameters
You are welcome to file this as a bug report/feature request on b.android.com. On Tue, Jul 17, 2012 at 9:22 AM, sven wrote: > 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 -- Mark Murphy (a Commons Guy) http://commonsware.com | http://github.com/commonsguy http://commonsware.com/blog | http://twitter.com/commonsguy _The Busy Coder's Guide to Android Development_ Version 3.8 Available! -- 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
[android-developers] WebView in android 4.1.1 crashes for URLs with a non-standard separation of query parameters
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