You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Chris Colman <ch...@stepaheadsoftware.com> on 2010/06/03 04:02:17 UTC

Unable to lazily register wicket-event.js - incorrect case?

My logs reveal a rather interesting resource loading error:

ERROR - haredResourceRequestTarget - unable to lazily register shared
resource
org.apache.wicket.markup.html.wicketeventreference/wicket-event.js
java.lang.ClassNotFoundException:
org.apache.wicket.markup.html.wicketeventreference
        at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader
.java:1387)



The request log reveals the cause:

Here's a request for wicket-event.js that fails (404):

"GET
/resources/org.apache.wicket.markup.html.wicketeventreference/wicket-eve
nt.js HTTP/1.0" 404 952

Here's a request for wicket-event.js that succeeds (200):

"GET
/resources/org.apache.wicket.markup.html.WicketEventReference/wicket-eve
nt.js HTTP/1.1" 200 2317

Note the difference: The case is different for the word
[W|w]icket[E|e]vent[R|r]eference in each case. Tomcat is running on a
Linux server so obviously case will be an issue. This bug probably does
not reveal itself on a Windows server.

Why would wicket make two different types of requests to get the same
resource?

I'm using only wicket and wicket-extensions, built from sources taken
from SVN 1.4.x trunk on May 24, 2010.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


RE: Unable to lazily register wicket-event.js - incorrect case?

Posted by Chris Colman <ch...@stepaheadsoftware.com>.
It is indeed a brain dead browser or robot that converts URLs to lowercase although there seems to be some SEO theories which seem to advise people to convert all URLs to lowercase - which seems stupid.

I ran into an issue the other day where a Domain registration company couldn't forward to a site I host because the URL contained mixed case - must have had some type of whacko software running there if it only used lowercase.

>the resources are registered via the fully qualified name of the class
>that acts as scope. if we registered them as fqn.tolowercase() then
>there are possibilities of collisions. if the browser chooses to
>ignore case sensitivity of a url then it deserves a 404.
>
>-igor
>
>On Wed, Jun 2, 2010 at 8:40 PM, Chris Colman
><ch...@stepaheadsoftware.com> wrote:
>> Would it be possible to wrap the resource loader code in a try/catch and
>if it fails retry with a lowercase form of the class name?
>>
>>>-----Original Message-----
>>>From: Chris Colman [mailto:chrisc@stepaheadsoftware.com]
>>>Sent: Thursday, 3 June 2010 12:42 PM
>>>To: users@wicket.apache.org
>>>Subject: RE: Unable to lazily register wicket-event.js - incorrect case?
>>>
>>>I did some more analysis:
>>>
>>>One offending User-Agent is 'reported' to be:
>>>
>>>Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; SV1; .NET CLR
>2.0.50727)
>>>
>>>But the very first request this agent makes, according to matching IP
>>>addresss, is robots.txt so it's probably not really a normal client
>browser
>>>but a robot/spider.
>>>
>>>Another User-Agent is 'reported' to be:
>>>
>>>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR
>2.0.50727;
>>>MAXTHON 2.0)
>>>
>>>Not sure if this is actually IE 6 (another robot/spider?) - amazing that
>>>someone is still able to surf the net using that browser.
>>>
>>>
>>>>-----Original Message-----
>>>>From: Igor Vaynberg [mailto:igor.vaynberg@gmail.com]
>>>>Sent: Thursday, 3 June 2010 12:11 PM
>>>>To: users@wicket.apache.org
>>>>Subject: Re: Unable to lazily register wicket-event.js - incorrect case?
>>>>
>>>>i doubt it was wicket, probably some weird browser that transformed
>>>>the url into lower case before requesting the resource.
>>>>
>>>>-igor
>>>>
>>>>On Wed, Jun 2, 2010 at 7:02 PM, Chris Colman
>>>><ch...@stepaheadsoftware.com> wrote:
>>>>> My logs reveal a rather interesting resource loading error:
>>>>>
>>>>> ERROR - haredResourceRequestTarget - unable to lazily register shared
>>>>> resource
>>>>> org.apache.wicket.markup.html.wicketeventreference/wicket-event.js
>>>>> java.lang.ClassNotFoundException:
>>>>> org.apache.wicket.markup.html.wicketeventreference
>>>>>        at
>>>>>
>org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader
>>>>> .java:1387)
>>>>>
>>>>>
>>>>>
>>>>> The request log reveals the cause:
>>>>>
>>>>> Here's a request for wicket-event.js that fails (404):
>>>>>
>>>>> "GET
>>>>> /resources/org.apache.wicket.markup.html.wicketeventreference/wicket-
>eve
>>>>> nt.js HTTP/1.0" 404 952
>>>>>
>>>>> Here's a request for wicket-event.js that succeeds (200):
>>>>>
>>>>> "GET
>>>>> /resources/org.apache.wicket.markup.html.WicketEventReference/wicket-
>eve
>>>>> nt.js HTTP/1.1" 200 2317
>>>>>
>>>>> Note the difference: The case is different for the word
>>>>> [W|w]icket[E|e]vent[R|r]eference in each case. Tomcat is running on a
>>>>> Linux server so obviously case will be an issue. This bug probably
>does
>>>>> not reveal itself on a Windows server.
>>>>>
>>>>> Why would wicket make two different types of requests to get the same
>>>>> resource?
>>>>>
>>>>> I'm using only wicket and wicket-extensions, built from sources taken
>>>>> from SVN 1.4.x trunk on May 24, 2010.
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> 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
>>
>>
>
>---------------------------------------------------------------------
>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: Unable to lazily register wicket-event.js - incorrect case?

Posted by Igor Vaynberg <ig...@gmail.com>.
the resources are registered via the fully qualified name of the class
that acts as scope. if we registered them as fqn.tolowercase() then
there are possibilities of collisions. if the browser chooses to
ignore case sensitivity of a url then it deserves a 404.

-igor

On Wed, Jun 2, 2010 at 8:40 PM, Chris Colman
<ch...@stepaheadsoftware.com> wrote:
> Would it be possible to wrap the resource loader code in a try/catch and if it fails retry with a lowercase form of the class name?
>
>>-----Original Message-----
>>From: Chris Colman [mailto:chrisc@stepaheadsoftware.com]
>>Sent: Thursday, 3 June 2010 12:42 PM
>>To: users@wicket.apache.org
>>Subject: RE: Unable to lazily register wicket-event.js - incorrect case?
>>
>>I did some more analysis:
>>
>>One offending User-Agent is 'reported' to be:
>>
>>Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
>>
>>But the very first request this agent makes, according to matching IP
>>addresss, is robots.txt so it's probably not really a normal client browser
>>but a robot/spider.
>>
>>Another User-Agent is 'reported' to be:
>>
>>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;
>>MAXTHON 2.0)
>>
>>Not sure if this is actually IE 6 (another robot/spider?) - amazing that
>>someone is still able to surf the net using that browser.
>>
>>
>>>-----Original Message-----
>>>From: Igor Vaynberg [mailto:igor.vaynberg@gmail.com]
>>>Sent: Thursday, 3 June 2010 12:11 PM
>>>To: users@wicket.apache.org
>>>Subject: Re: Unable to lazily register wicket-event.js - incorrect case?
>>>
>>>i doubt it was wicket, probably some weird browser that transformed
>>>the url into lower case before requesting the resource.
>>>
>>>-igor
>>>
>>>On Wed, Jun 2, 2010 at 7:02 PM, Chris Colman
>>><ch...@stepaheadsoftware.com> wrote:
>>>> My logs reveal a rather interesting resource loading error:
>>>>
>>>> ERROR - haredResourceRequestTarget - unable to lazily register shared
>>>> resource
>>>> org.apache.wicket.markup.html.wicketeventreference/wicket-event.js
>>>> java.lang.ClassNotFoundException:
>>>> org.apache.wicket.markup.html.wicketeventreference
>>>>        at
>>>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader
>>>> .java:1387)
>>>>
>>>>
>>>>
>>>> The request log reveals the cause:
>>>>
>>>> Here's a request for wicket-event.js that fails (404):
>>>>
>>>> "GET
>>>> /resources/org.apache.wicket.markup.html.wicketeventreference/wicket-eve
>>>> nt.js HTTP/1.0" 404 952
>>>>
>>>> Here's a request for wicket-event.js that succeeds (200):
>>>>
>>>> "GET
>>>> /resources/org.apache.wicket.markup.html.WicketEventReference/wicket-eve
>>>> nt.js HTTP/1.1" 200 2317
>>>>
>>>> Note the difference: The case is different for the word
>>>> [W|w]icket[E|e]vent[R|r]eference in each case. Tomcat is running on a
>>>> Linux server so obviously case will be an issue. This bug probably does
>>>> not reveal itself on a Windows server.
>>>>
>>>> Why would wicket make two different types of requests to get the same
>>>> resource?
>>>>
>>>> I'm using only wicket and wicket-extensions, built from sources taken
>>>> from SVN 1.4.x trunk on May 24, 2010.
>>>>
>>>> ---------------------------------------------------------------------
>>>> 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
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


RE: Unable to lazily register wicket-event.js - incorrect case?

Posted by Chris Colman <ch...@stepaheadsoftware.com>.
Would it be possible to wrap the resource loader code in a try/catch and if it fails retry with a lowercase form of the class name?

>-----Original Message-----
>From: Chris Colman [mailto:chrisc@stepaheadsoftware.com]
>Sent: Thursday, 3 June 2010 12:42 PM
>To: users@wicket.apache.org
>Subject: RE: Unable to lazily register wicket-event.js - incorrect case?
>
>I did some more analysis:
>
>One offending User-Agent is 'reported' to be:
>
>Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
>
>But the very first request this agent makes, according to matching IP
>addresss, is robots.txt so it's probably not really a normal client browser
>but a robot/spider.
>
>Another User-Agent is 'reported' to be:
>
>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;
>MAXTHON 2.0)
>
>Not sure if this is actually IE 6 (another robot/spider?) - amazing that
>someone is still able to surf the net using that browser.
>
>
>>-----Original Message-----
>>From: Igor Vaynberg [mailto:igor.vaynberg@gmail.com]
>>Sent: Thursday, 3 June 2010 12:11 PM
>>To: users@wicket.apache.org
>>Subject: Re: Unable to lazily register wicket-event.js - incorrect case?
>>
>>i doubt it was wicket, probably some weird browser that transformed
>>the url into lower case before requesting the resource.
>>
>>-igor
>>
>>On Wed, Jun 2, 2010 at 7:02 PM, Chris Colman
>><ch...@stepaheadsoftware.com> wrote:
>>> My logs reveal a rather interesting resource loading error:
>>>
>>> ERROR - haredResourceRequestTarget - unable to lazily register shared
>>> resource
>>> org.apache.wicket.markup.html.wicketeventreference/wicket-event.js
>>> java.lang.ClassNotFoundException:
>>> org.apache.wicket.markup.html.wicketeventreference
>>>        at
>>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader
>>> .java:1387)
>>>
>>>
>>>
>>> The request log reveals the cause:
>>>
>>> Here's a request for wicket-event.js that fails (404):
>>>
>>> "GET
>>> /resources/org.apache.wicket.markup.html.wicketeventreference/wicket-eve
>>> nt.js HTTP/1.0" 404 952
>>>
>>> Here's a request for wicket-event.js that succeeds (200):
>>>
>>> "GET
>>> /resources/org.apache.wicket.markup.html.WicketEventReference/wicket-eve
>>> nt.js HTTP/1.1" 200 2317
>>>
>>> Note the difference: The case is different for the word
>>> [W|w]icket[E|e]vent[R|r]eference in each case. Tomcat is running on a
>>> Linux server so obviously case will be an issue. This bug probably does
>>> not reveal itself on a Windows server.
>>>
>>> Why would wicket make two different types of requests to get the same
>>> resource?
>>>
>>> I'm using only wicket and wicket-extensions, built from sources taken
>>> from SVN 1.4.x trunk on May 24, 2010.
>>>
>>> ---------------------------------------------------------------------
>>> 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: Unable to lazily register wicket-event.js - incorrect case?

Posted by Chris Colman <ch...@stepaheadsoftware.com>.
I did some more analysis: 

One offending User-Agent is 'reported' to be:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)

But the very first request this agent makes, according to matching IP addresss, is robots.txt so it's probably not really a normal client browser but a robot/spider.

Another User-Agent is 'reported' to be:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; MAXTHON 2.0)

Not sure if this is actually IE 6 (another robot/spider?) - amazing that someone is still able to surf the net using that browser.


>-----Original Message-----
>From: Igor Vaynberg [mailto:igor.vaynberg@gmail.com]
>Sent: Thursday, 3 June 2010 12:11 PM
>To: users@wicket.apache.org
>Subject: Re: Unable to lazily register wicket-event.js - incorrect case?
>
>i doubt it was wicket, probably some weird browser that transformed
>the url into lower case before requesting the resource.
>
>-igor
>
>On Wed, Jun 2, 2010 at 7:02 PM, Chris Colman
><ch...@stepaheadsoftware.com> wrote:
>> My logs reveal a rather interesting resource loading error:
>>
>> ERROR - haredResourceRequestTarget - unable to lazily register shared
>> resource
>> org.apache.wicket.markup.html.wicketeventreference/wicket-event.js
>> java.lang.ClassNotFoundException:
>> org.apache.wicket.markup.html.wicketeventreference
>>        at
>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader
>> .java:1387)
>>
>>
>>
>> The request log reveals the cause:
>>
>> Here's a request for wicket-event.js that fails (404):
>>
>> "GET
>> /resources/org.apache.wicket.markup.html.wicketeventreference/wicket-eve
>> nt.js HTTP/1.0" 404 952
>>
>> Here's a request for wicket-event.js that succeeds (200):
>>
>> "GET
>> /resources/org.apache.wicket.markup.html.WicketEventReference/wicket-eve
>> nt.js HTTP/1.1" 200 2317
>>
>> Note the difference: The case is different for the word
>> [W|w]icket[E|e]vent[R|r]eference in each case. Tomcat is running on a
>> Linux server so obviously case will be an issue. This bug probably does
>> not reveal itself on a Windows server.
>>
>> Why would wicket make two different types of requests to get the same
>> resource?
>>
>> I'm using only wicket and wicket-extensions, built from sources taken
>> from SVN 1.4.x trunk on May 24, 2010.
>>
>> ---------------------------------------------------------------------
>> 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: Unable to lazily register wicket-event.js - incorrect case?

Posted by Igor Vaynberg <ig...@gmail.com>.
i doubt it was wicket, probably some weird browser that transformed
the url into lower case before requesting the resource.

-igor

On Wed, Jun 2, 2010 at 7:02 PM, Chris Colman
<ch...@stepaheadsoftware.com> wrote:
> My logs reveal a rather interesting resource loading error:
>
> ERROR - haredResourceRequestTarget - unable to lazily register shared
> resource
> org.apache.wicket.markup.html.wicketeventreference/wicket-event.js
> java.lang.ClassNotFoundException:
> org.apache.wicket.markup.html.wicketeventreference
>        at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader
> .java:1387)
>
>
>
> The request log reveals the cause:
>
> Here's a request for wicket-event.js that fails (404):
>
> "GET
> /resources/org.apache.wicket.markup.html.wicketeventreference/wicket-eve
> nt.js HTTP/1.0" 404 952
>
> Here's a request for wicket-event.js that succeeds (200):
>
> "GET
> /resources/org.apache.wicket.markup.html.WicketEventReference/wicket-eve
> nt.js HTTP/1.1" 200 2317
>
> Note the difference: The case is different for the word
> [W|w]icket[E|e]vent[R|r]eference in each case. Tomcat is running on a
> Linux server so obviously case will be an issue. This bug probably does
> not reveal itself on a Windows server.
>
> Why would wicket make two different types of requests to get the same
> resource?
>
> I'm using only wicket and wicket-extensions, built from sources taken
> from SVN 1.4.x trunk on May 24, 2010.
>
> ---------------------------------------------------------------------
> 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