You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Mathias Binder <ma...@gmail.com> on 2013/07/24 10:29:36 UTC
NumberFormatException from Requests with invalid URIs
Hi,
we became aware of a problem caused by requests with invalid URIs on
our wicket-application. The URI contains strings like "*://*:*", so
wicket tries to determine and parse a port number, that is not
present. This leads to NumberFormatExceptions with URIs like, e.g.
http://<host>/h@@p://h@@p://
java.lang.NumberFormatException: For input string: ""
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
java.lang.Integer.parseInt(Integer.java:470)
java.lang.Integer.parseInt(Integer.java:499)
org.apache.wicket.request.Url.parse(Url.java:197)
org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:222)
org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:126)
org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:83)
org.apache.wicket.protocol.http.WebApplication.newWebRequest(WebApplication.java:413)
org.apache.wicket.protocol.http.WebApplication.createWebRequest(WebApplication.java:458)
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:183)
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244)
Should this issue be fixed in the URL representation from wicket?
Something like a check if the string that represents the port-number
to be parsed is not emtpy?
Thanks
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: NumberFormatException from Requests with invalid URIs
Posted by Martin Funk <ma...@gmail.com>.
done
https://issues.apache.org/jira/browse/WICKET-5287
2013/7/25 Sven Meier <sv...@meiers.net>
> ServletWebRequest#**getContextRelativeUrl() passes "foo://:/" to
> Url#parse() and that one fails.
>
> Please create a Jira issue.
>
> Sven
>
>
> On 07/24/2013 05:06 PM, Martin Funk wrote:
>
>> Hi Sven,
>>
>> we still can reproduce this on any version.
>>
>> Maybe this git diff gives a clearer picture:
>>
>> diff --git
>> a/wicket-core/src/test/java/**org/apache/wicket/protocol/**http/servlet/*
>> *ServletWebRequestTest.java
>> b/wicket-core/src/test/java/**org/apache/wicket/protocol/**http/servlet/*
>> *ServletWebRequestTest.java
>> index f974a06..9ee3308 100644
>> ---
>> a/wicket-core/src/test/java/**org/apache/wicket/protocol/**http/servlet/*
>> *ServletWebRequestTest.java
>> +++
>> b/wicket-core/src/test/java/**org/apache/wicket/protocol/**http/servlet/*
>> *ServletWebRequestTest.java
>> @@ -191,6 +191,16 @@
>> assertEquals("any/source/of/**error", errorClientUrl.toString());
>> }
>>
>> + @Test
>> + public void wicketFoo()
>> + {
>> + String filterPath = "filterPath";
>> + MockHttpServletRequest httpRequest = new MockHttpServletRequest(null,
>> null, null);
>> + httpRequest.setURL("http://**localhost <http://localhost>" + '/' +
>> filterPath +
>> "/request/foo://:/");
>> +
>> + ServletWebRequest webRequest = new ServletWebRequest(httpRequest,
>> filterPath);
>> + }
>> +
>> private static class CustomRequestPage extends WebPage implements
>> IMarkupResourceStreamProvider
>> {
>> private static final long serialVersionUID = 1L;
>>
>> This tests leads to this exption
>>
>> java.lang.**NumberFormatException: For input string: ""
>> at java.lang.**NumberFormatException.**forInputString(Unknown Source)
>> at java.lang.Integer.parseInt(**Unknown Source)
>> at java.lang.Integer.parseInt(**Unknown Source)
>> at org.apache.wicket.request.Url.**parse(Url.java:277)
>> at
>> org.apache.wicket.protocol.**http.servlet.**ServletWebRequest.**
>> getContextRelativeUrl(**ServletWebRequest.java:208)
>> at
>> org.apache.wicket.protocol.**http.servlet.**ServletWebRequest.<init>(**
>> ServletWebRequest.java:112)
>> at
>> org.apache.wicket.protocol.**http.servlet.**ServletWebRequest.<init>(**
>> ServletWebRequest.java:82)
>> at
>> org.apache.wicket.protocol.**http.servlet.**ServletWebRequestTest.**
>> wicketFoo(**ServletWebRequestTest.java:**201)
>> at sun.reflect.**NativeMethodAccessorImpl.**invoke0(Native Method)
>> at sun.reflect.**NativeMethodAccessorImpl.**invoke(Unknown Source)
>> at sun.reflect.**DelegatingMethodAccessorImpl.**invoke(Unknown Source)
>> at java.lang.reflect.Method.**invoke(Unknown Source)
>> at
>> org.junit.runners.model.**FrameworkMethod$1.**runReflectiveCall(**
>> FrameworkMethod.java:47)
>> at
>> org.junit.internal.runners.**model.ReflectiveCallable.run(**
>> ReflectiveCallable.java:12)
>> at
>> org.junit.runners.model.**FrameworkMethod.**invokeExplosively(**
>> FrameworkMethod.java:44)
>> at
>> org.junit.internal.runners.**statements.InvokeMethod.**
>> evaluate(InvokeMethod.java:17)
>> at org.junit.runners.**ParentRunner.runLeaf(**ParentRunner.java:271)
>> at
>> org.junit.runners.**BlockJUnit4ClassRunner.**runChild(**
>> BlockJUnit4ClassRunner.java:**70)
>> at
>> org.junit.runners.**BlockJUnit4ClassRunner.**runChild(**
>> BlockJUnit4ClassRunner.java:**50)
>> at org.junit.runners.**ParentRunner$3.run(**ParentRunner.java:238)
>> at org.junit.runners.**ParentRunner$1.schedule(**ParentRunner.java:63)
>> at org.junit.runners.**ParentRunner.runChildren(**ParentRunner.java:236)
>> at org.junit.runners.**ParentRunner.access$000(**ParentRunner.java:53)
>> at org.junit.runners.**ParentRunner$2.evaluate(**ParentRunner.java:229)
>> at org.junit.runners.**ParentRunner.run(ParentRunner.**java:309)
>> at
>> org.eclipse.jdt.internal.**junit4.runner.**JUnit4TestReference.run(**
>> JUnit4TestReference.java:50)
>> at
>> org.eclipse.jdt.internal.**junit.runner.TestExecution.**
>> run(TestExecution.java:38)
>> at
>> org.eclipse.jdt.internal.**junit.runner.RemoteTestRunner.**
>> runTests(RemoteTestRunner.**java:467)
>> at
>> org.eclipse.jdt.internal.**junit.runner.RemoteTestRunner.**
>> runTests(RemoteTestRunner.**java:683)
>> at
>> org.eclipse.jdt.internal.**junit.runner.RemoteTestRunner.**
>> run(RemoteTestRunner.java:390)
>> at
>> org.eclipse.jdt.internal.**junit.runner.RemoteTestRunner.**
>> main(RemoteTestRunner.java:**197)
>>
>> cheers,
>>
>>
>> Martin
>>
>>
>>
>> 2013/7/24 Mathias Binder <ma...@gmail.com>
>>
>> We work with Version 6.7.0
>>>
>>> Mathias
>>>
>>> 2013/7/24 Sven Meier <sv...@meiers.net>:
>>>
>>>> Hi,
>>>>
>>>> which Wicket version? Url parsing has been improved on lately:
>>>>
>>>> @Test
>>>> public void weirdUrl()
>>>> {
>>>> Url url = Url.parse("http://wicket.**apache.org/h@@p://h@@p://<http://wicket.apache.org/h@@p://h@@p://>
>>>> ");
>>>>
>>>> assertEquals("wicket.apache.**org <http://wicket.apache.org>",
>>>> url.getHost());
>>>> assertEquals("/h@@p://h@@p://"**, url.getPath());
>>>> }
>>>>
>>>>
>>>> Works fine with 6.10.0-SNAPSHOT.
>>>>
>>>> Sven
>>>>
>>>>
>>>> On 07/24/2013 10:29 AM, Mathias Binder wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> we became aware of a problem caused by requests with invalid URIs on
>>>>> our wicket-application. The URI contains strings like "*://*:*", so
>>>>> wicket tries to determine and parse a port number, that is not
>>>>> present. This leads to NumberFormatExceptions with URIs like, e.g.
>>>>> http://<host>/h@@p://h@@p://
>>>>>
>>>>> java.lang.**NumberFormatException: For input string: ""
>>>>>
>>>>>
>>>>> java.lang.**NumberFormatException.**forInputString(**
>>> NumberFormatException.java:48)
>>>
>>>> java.lang.Integer.parseInt(**Integer.java:470)
>>>>> java.lang.Integer.parseInt(**Integer.java:499)
>>>>> org.apache.wicket.request.Url.**parse(Url.java:197)
>>>>>
>>>>>
>>>>> org.apache.wicket.protocol.**http.servlet.**ServletWebRequest.**
>>> getContextRelativeUrl(**ServletWebRequest.java:222)
>>>
>>>>
>>>>> org.apache.wicket.protocol.**http.servlet.**ServletWebRequest.<init>(
>>> **ServletWebRequest.java:126)
>>>
>>>>
>>>>> org.apache.wicket.protocol.**http.servlet.**ServletWebRequest.<init>(
>>> **ServletWebRequest.java:83)
>>>
>>>>
>>>>> org.apache.wicket.protocol.**http.WebApplication.**
>>> newWebRequest(WebApplication.**java:413)
>>>
>>>>
>>>>> org.apache.wicket.protocol.**http.WebApplication.**createWebRequest(*
>>> *WebApplication.java:458)
>>>
>>>>
>>>>> org.apache.wicket.protocol.**http.WicketFilter.**
>>> processRequest(WicketFilter.**java:183)
>>>
>>>>
>>>>> org.apache.wicket.protocol.**http.WicketFilter.doFilter(**
>>> WicketFilter.java:244)
>>>
>>>>
>>>>> Should this issue be fixed in the URL representation from wicket?
>>>>> Something like a check if the string that represents the port-number
>>>>> to be parsed is not emtpy?
>>>>>
>>>>> Thanks
>>>>>
>>>>> ------------------------------**------------------------------**
>>>>> ---------
>>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>>
>>>>>
>>>> ------------------------------**------------------------------**
>>>> ---------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>> ------------------------------**------------------------------**
>>> ---------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>>>
>>>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
Re: NumberFormatException from Requests with invalid URIs
Posted by Sven Meier <sv...@meiers.net>.
ServletWebRequest#getContextRelativeUrl() passes "foo://:/" to
Url#parse() and that one fails.
Please create a Jira issue.
Sven
On 07/24/2013 05:06 PM, Martin Funk wrote:
> Hi Sven,
>
> we still can reproduce this on any version.
>
> Maybe this git diff gives a clearer picture:
>
> diff --git
> a/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
> b/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
> index f974a06..9ee3308 100644
> ---
> a/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
> +++
> b/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
> @@ -191,6 +191,16 @@
> assertEquals("any/source/of/error", errorClientUrl.toString());
> }
>
> + @Test
> + public void wicketFoo()
> + {
> + String filterPath = "filterPath";
> + MockHttpServletRequest httpRequest = new MockHttpServletRequest(null,
> null, null);
> + httpRequest.setURL("http://localhost" + '/' + filterPath +
> "/request/foo://:/");
> +
> + ServletWebRequest webRequest = new ServletWebRequest(httpRequest,
> filterPath);
> + }
> +
> private static class CustomRequestPage extends WebPage implements
> IMarkupResourceStreamProvider
> {
> private static final long serialVersionUID = 1L;
>
> This tests leads to this exption
>
> java.lang.NumberFormatException: For input string: ""
> at java.lang.NumberFormatException.forInputString(Unknown Source)
> at java.lang.Integer.parseInt(Unknown Source)
> at java.lang.Integer.parseInt(Unknown Source)
> at org.apache.wicket.request.Url.parse(Url.java:277)
> at
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:208)
> at
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:112)
> at
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:82)
> at
> org.apache.wicket.protocol.http.servlet.ServletWebRequestTest.wicketFoo(ServletWebRequestTest.java:201)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
>
> cheers,
>
>
> Martin
>
>
>
> 2013/7/24 Mathias Binder <ma...@gmail.com>
>
>> We work with Version 6.7.0
>>
>> Mathias
>>
>> 2013/7/24 Sven Meier <sv...@meiers.net>:
>>> Hi,
>>>
>>> which Wicket version? Url parsing has been improved on lately:
>>>
>>> @Test
>>> public void weirdUrl()
>>> {
>>> Url url = Url.parse("http://wicket.apache.org/h@@p://h@@p://");
>>>
>>> assertEquals("wicket.apache.org", url.getHost());
>>> assertEquals("/h@@p://h@@p://", url.getPath());
>>> }
>>>
>>>
>>> Works fine with 6.10.0-SNAPSHOT.
>>>
>>> Sven
>>>
>>>
>>> On 07/24/2013 10:29 AM, Mathias Binder wrote:
>>>> Hi,
>>>>
>>>> we became aware of a problem caused by requests with invalid URIs on
>>>> our wicket-application. The URI contains strings like "*://*:*", so
>>>> wicket tries to determine and parse a port number, that is not
>>>> present. This leads to NumberFormatExceptions with URIs like, e.g.
>>>> http://<host>/h@@p://h@@p://
>>>>
>>>> java.lang.NumberFormatException: For input string: ""
>>>>
>>>>
>> java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
>>>> java.lang.Integer.parseInt(Integer.java:470)
>>>> java.lang.Integer.parseInt(Integer.java:499)
>>>> org.apache.wicket.request.Url.parse(Url.java:197)
>>>>
>>>>
>> org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:222)
>>>>
>> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:126)
>>>>
>> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:83)
>>>>
>> org.apache.wicket.protocol.http.WebApplication.newWebRequest(WebApplication.java:413)
>>>>
>> org.apache.wicket.protocol.http.WebApplication.createWebRequest(WebApplication.java:458)
>>>>
>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:183)
>>>>
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244)
>>>>
>>>> Should this issue be fixed in the URL representation from wicket?
>>>> Something like a check if the string that represents the port-number
>>>> to be parsed is not emtpy?
>>>>
>>>> Thanks
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: NumberFormatException from Requests with invalid URIs
Posted by Martin Funk <ma...@gmail.com>.
Hi Sven,
we still can reproduce this on any version.
Maybe this git diff gives a clearer picture:
diff --git
a/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
b/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
index f974a06..9ee3308 100644
---
a/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
+++
b/wicket-core/src/test/java/org/apache/wicket/protocol/http/servlet/ServletWebRequestTest.java
@@ -191,6 +191,16 @@
assertEquals("any/source/of/error", errorClientUrl.toString());
}
+ @Test
+ public void wicketFoo()
+ {
+ String filterPath = "filterPath";
+ MockHttpServletRequest httpRequest = new MockHttpServletRequest(null,
null, null);
+ httpRequest.setURL("http://localhost" + '/' + filterPath +
"/request/foo://:/");
+
+ ServletWebRequest webRequest = new ServletWebRequest(httpRequest,
filterPath);
+ }
+
private static class CustomRequestPage extends WebPage implements
IMarkupResourceStreamProvider
{
private static final long serialVersionUID = 1L;
This tests leads to this exption
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at org.apache.wicket.request.Url.parse(Url.java:277)
at
org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:208)
at
org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:112)
at
org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:82)
at
org.apache.wicket.protocol.http.servlet.ServletWebRequestTest.wicketFoo(ServletWebRequestTest.java:201)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
cheers,
Martin
2013/7/24 Mathias Binder <ma...@gmail.com>
> We work with Version 6.7.0
>
> Mathias
>
> 2013/7/24 Sven Meier <sv...@meiers.net>:
> > Hi,
> >
> > which Wicket version? Url parsing has been improved on lately:
> >
> > @Test
> > public void weirdUrl()
> > {
> > Url url = Url.parse("http://wicket.apache.org/h@@p://h@@p://");
> >
> > assertEquals("wicket.apache.org", url.getHost());
> > assertEquals("/h@@p://h@@p://", url.getPath());
> > }
> >
> >
> > Works fine with 6.10.0-SNAPSHOT.
> >
> > Sven
> >
> >
> > On 07/24/2013 10:29 AM, Mathias Binder wrote:
> >>
> >> Hi,
> >>
> >> we became aware of a problem caused by requests with invalid URIs on
> >> our wicket-application. The URI contains strings like "*://*:*", so
> >> wicket tries to determine and parse a port number, that is not
> >> present. This leads to NumberFormatExceptions with URIs like, e.g.
> >> http://<host>/h@@p://h@@p://
> >>
> >> java.lang.NumberFormatException: For input string: ""
> >>
> >>
> java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
> >> java.lang.Integer.parseInt(Integer.java:470)
> >> java.lang.Integer.parseInt(Integer.java:499)
> >> org.apache.wicket.request.Url.parse(Url.java:197)
> >>
> >>
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:222)
> >>
> >>
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:126)
> >>
> >>
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:83)
> >>
> >>
> org.apache.wicket.protocol.http.WebApplication.newWebRequest(WebApplication.java:413)
> >>
> >>
> org.apache.wicket.protocol.http.WebApplication.createWebRequest(WebApplication.java:458)
> >>
> >>
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:183)
> >>
> >>
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244)
> >>
> >>
> >> Should this issue be fixed in the URL representation from wicket?
> >> Something like a check if the string that represents the port-number
> >> to be parsed is not emtpy?
> >>
> >> Thanks
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > For additional commands, e-mail: users-help@wicket.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>
Re: NumberFormatException from Requests with invalid URIs
Posted by Mathias Binder <ma...@gmail.com>.
We work with Version 6.7.0
Mathias
2013/7/24 Sven Meier <sv...@meiers.net>:
> Hi,
>
> which Wicket version? Url parsing has been improved on lately:
>
> @Test
> public void weirdUrl()
> {
> Url url = Url.parse("http://wicket.apache.org/h@@p://h@@p://");
>
> assertEquals("wicket.apache.org", url.getHost());
> assertEquals("/h@@p://h@@p://", url.getPath());
> }
>
>
> Works fine with 6.10.0-SNAPSHOT.
>
> Sven
>
>
> On 07/24/2013 10:29 AM, Mathias Binder wrote:
>>
>> Hi,
>>
>> we became aware of a problem caused by requests with invalid URIs on
>> our wicket-application. The URI contains strings like "*://*:*", so
>> wicket tries to determine and parse a port number, that is not
>> present. This leads to NumberFormatExceptions with URIs like, e.g.
>> http://<host>/h@@p://h@@p://
>>
>> java.lang.NumberFormatException: For input string: ""
>>
>> java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
>> java.lang.Integer.parseInt(Integer.java:470)
>> java.lang.Integer.parseInt(Integer.java:499)
>> org.apache.wicket.request.Url.parse(Url.java:197)
>>
>> org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:222)
>>
>> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:126)
>>
>> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:83)
>>
>> org.apache.wicket.protocol.http.WebApplication.newWebRequest(WebApplication.java:413)
>>
>> org.apache.wicket.protocol.http.WebApplication.createWebRequest(WebApplication.java:458)
>>
>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:183)
>>
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244)
>>
>>
>> Should this issue be fixed in the URL representation from wicket?
>> Something like a check if the string that represents the port-number
>> to be parsed is not emtpy?
>>
>> Thanks
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: NumberFormatException from Requests with invalid URIs
Posted by Sven Meier <sv...@meiers.net>.
Hi,
which Wicket version? Url parsing has been improved on lately:
@Test
public void weirdUrl()
{
Url url = Url.parse("http://wicket.apache.org/h@@p://h@@p://");
assertEquals("wicket.apache.org", url.getHost());
assertEquals("/h@@p://h@@p://", url.getPath());
}
Works fine with 6.10.0-SNAPSHOT.
Sven
On 07/24/2013 10:29 AM, Mathias Binder wrote:
> Hi,
>
> we became aware of a problem caused by requests with invalid URIs on
> our wicket-application. The URI contains strings like "*://*:*", so
> wicket tries to determine and parse a port number, that is not
> present. This leads to NumberFormatExceptions with URIs like, e.g.
> http://<host>/h@@p://h@@p://
>
> java.lang.NumberFormatException: For input string: ""
> java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
> java.lang.Integer.parseInt(Integer.java:470)
> java.lang.Integer.parseInt(Integer.java:499)
> org.apache.wicket.request.Url.parse(Url.java:197)
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.getContextRelativeUrl(ServletWebRequest.java:222)
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:126)
> org.apache.wicket.protocol.http.servlet.ServletWebRequest.<init>(ServletWebRequest.java:83)
> org.apache.wicket.protocol.http.WebApplication.newWebRequest(WebApplication.java:413)
> org.apache.wicket.protocol.http.WebApplication.createWebRequest(WebApplication.java:458)
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:183)
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244)
>
>
> Should this issue be fixed in the URL representation from wicket?
> Something like a check if the string that represents the port-number
> to be parsed is not emtpy?
>
> Thanks
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org