Re: [android-developers] WebView in android 4.1.1 crashes for URLs with a non-standard separation of query parameters

2012-07-17 Thread sven
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

2012-07-17 Thread Mark Murphy
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

2012-07-17 Thread sven
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