You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by George Christman <gc...@cardaddy.com> on 2014/02/26 13:45:05 UTC

Autocomplete exception blank query parameter.

Hi guys, I'm using tapestry 5.4-beta 3 and I have a keyword search on my
website using the auto complete mixin. I'm seeing the following exception
appear in my logs 100's of times. I have been unable to reproduce it, so im
assuming it is happening as a result of bot activity,  but I can not
confirm.  Does anybody know the cause or how to repair it?

org.apache.tapestry5.runtime.ComponentEventException: Unable process query
parameter 't:input' as parameter #1 of event handler method
org.apache.tapestry5.corelib.mixins.Autocomplete.onAutocomplete(java.lang.String):
The value for query parameter 't:input' was blank, but a non-blank value is
needed. [at
classpath:com/cardaddy/auto/components/search/KeywordSearch.tml, line 3] at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1151)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3100(ComponentPageElementImpl.java:62)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1072)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1069)
at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:80)
at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:89)
at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1112)
at
org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:145)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1068)
at
org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:75)
at
org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
at $ComponentEventRequestHandler_7591aa242fc1.handle(Unknown Source) at
org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
at $ComponentEventRequestHandler_7591aa242fc1.handle(Unknown Source) at
org.apache.tapestry5.modules.TapestryModule$37.handle(TapestryModule.java:2192)
at $ComponentEventRequestHandler_7591aa242fc1.handle(Unknown Source) at
$ComponentEventRequestHandler_7591aa242e4a.handle(Unknown Source) at
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
at
org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39)
at $ComponentRequestHandler_7591aa242e4c.handleComponentEvent(Unknown
Source) at
org.apache.tapestry5.internal.services.RequestOperationTracker$1.perform(RequestOperationTracker.java:55)
at
org.apache.tapestry5.internal.services.RequestOperationTracker$1.perform(RequestOperationTracker.java:52)
at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:107)
at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.perform(PerThreadOperationTracker.java:100)
at
org.apache.tapestry5.ioc.internal.RegistryImpl.perform(RegistryImpl.java:1117)
at
org.apache.tapestry5.internal.services.RequestOperationTracker.handleComponentEvent(RequestOperationTracker.java:47)
at $ComponentRequestHandler_7591aa242e4c.handleComponentEvent(Unknown
Source) at
org.tynamo.security.SecurityComponentRequestFilter.handleComponentEvent(SecurityComponentRequestFilter.java:41)
at $ComponentRequestFilter_7591aa242e49.handleComponentEvent(Unknown
Source) at
$ComponentRequestHandler_7591aa242e4c.handleComponentEvent(Unknown Source)
at
org.lazan.t5.cometd.services.internal.PageGlobalsComponentRequestFilter.handleComponentEvent(PageGlobalsComponentRequestFilter.java:22)
at $ComponentRequestHandler_7591aa242e4c.handleComponentEvent(Unknown
Source) at
$ComponentRequestHandler_7591aa242e00.handleComponentEvent(Unknown Source)
at
org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)
at $Dispatcher_7591aa242e06.dispatch(Unknown Source) at
$Dispatcher_7591aa242dfd.dispatch(Unknown Source) at
org.apache.tapestry5.modules.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:300)
at com.cardaddy.auto.services.AppModule$1.service(AppModule.java:202) at
$RequestFilter_7591aa242dfc.service(Unknown Source) at
$RequestHandler_7591aa242dfe.service(Unknown Source) at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
at $RequestHandler_7591aa242dfe.service(Unknown Source) at
org.apache.tapestry5.modules.TapestryModule$3.service(TapestryModule.java:846)
at $RequestHandler_7591aa242dfe.service(Unknown Source) at
org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.java:836)
at $RequestHandler_7591aa242dfe.service(Unknown Source) at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89)
at $RequestHandler_7591aa242dfe.service(Unknown Source) at
$RequestHandler_7591aa242dec.service(Unknown Source) at
org.apache.tapestry5.modules.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:251)
at
com.cardaddy.auto.services.photo.impl.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:29)
at $HttpServletRequestHandler_7591aa242dee.service(Unknown Source) at
org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:59)
at $HttpServletRequestHandler_7591aa242dee.service(Unknown Source) at
org.tynamo.security.services.impl.SecurityConfiguration$1.call(SecurityConfiguration.java:56)
at
org.tynamo.security.services.impl.SecurityConfiguration$1.call(SecurityConfiguration.java:54)
at
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:380)
at
org.tynamo.security.services.impl.SecurityConfiguration.service(SecurityConfiguration.java:54)
at $HttpServletRequestFilter_7591aa242de7.service(Unknown Source) at
$HttpServletRequestHandler_7591aa242dee.service(Unknown Source) at
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
at $HttpServletRequestHandler_7591aa242dee.service(Unknown Source) at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
at $HttpServletRequestFilter_7591aa242de8.service(Unknown Source) at
$HttpServletRequestHandler_7591aa242dee.service(Unknown Source) at
org.lazan.t5.cometd.services.internal.ServletHttpServletRequestFilter.service(ServletHttpServletRequestFilter.java:82)
at $CometdHttpServletRequestFilter_7591aa242dd7.service(Unknown Source) at
$HttpServletRequestHandler_7591aa242dee.service(Unknown Source) at
org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.java:796)
at $HttpServletRequestHandler_7591aa242dee.service(Unknown Source) at
$HttpServletRequestHandler_7591aa242de5.service(Unknown Source) at
org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:166) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:680)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744) Caused by:
org.apache.tapestry5.ioc.internal.OperationException: Unable process query
parameter 't:input' as parameter #1 of event handler method
org.apache.tapestry5.corelib.mixins.Autocomplete.onAutocomplete(java.lang.String):
The value for query parameter 't:input' was blank, but a non-blank value is
needed. at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:180)
at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88)
at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:89)
at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1112)
at
org.apache.tapestry5.internal.transform.EventHandlerMethodParameterSource.get(EventHandlerMethodParameterSource.java:49)
at
org.apache.tapestry5.corelib.mixins.Autocomplete.dispatchComponentEvent(Autocomplete.java)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:950)
at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1127)
... 90 more Caused by: java.lang.RuntimeException: Unable process query
parameter 't:input' as parameter #1 of event handler method
org.apache.tapestry5.corelib.mixins.Autocomplete.onAutocomplete(java.lang.String):
The value for query parameter 't:input' was blank, but a non-blank value is
needed. at
org.apache.tapestry5.internal.transform.OnEventWorker$9.valueForEventHandlerMethodParameter(OnEventWorker.java:456)
at
org.apache.tapestry5.internal.transform.EventHandlerMethodParameterSource$1.invoke(EventHandlerMethodParameterSource.java:54)
at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:80)
... 96 more Caused by: java.lang.RuntimeException: The value for query
parameter 't:input' was blank, but a non-blank value is needed. at
org.apache.tapestry5.internal.transform.OnEventWorker$9.valueForEventHandlerMethodParameter(OnEventWorker.java:437)
... 98 more

Re: Autocomplete exception blank query parameter.

Posted by Barry Books <tr...@gmail.com>.
I get these also. It would be nice if they were logged as a WARN so it
would be easy to ignore them in production.


On Wed, Feb 26, 2014 at 9:19 AM, Lance Java <la...@googlemail.com>wrote:

> Some serverside actions (eg autocomplete) expect a well formed request
> which may require some request parameters to be present. As you can
> imagine, a bot can run regular expressions and hit anything the looks like
> a URL. I think it's fine to ignore crawlers from error logging. It's
> difficult to do much else.
>
> You could override / decorate the RequestExceptionHandler and check the
> "User-Agent" request header before logging
>
> https://tapestry.apache.org/overriding-exception-reporting.html
>
> http://user-agent-string.info/list-of-ua/bots
>

Re: Autocomplete exception blank query parameter.

Posted by Lance Java <la...@googlemail.com>.
Some serverside actions (eg autocomplete) expect a well formed request
which may require some request parameters to be present. As you can
imagine, a bot can run regular expressions and hit anything the looks like
a URL. I think it's fine to ignore crawlers from error logging. It's
difficult to do much else.

You could override / decorate the RequestExceptionHandler and check the
"User-Agent" request header before logging

https://tapestry.apache.org/overriding-exception-reporting.html

http://user-agent-string.info/list-of-ua/bots

Re: Autocomplete exception blank query parameter.

Posted by George Christman <gc...@cardaddy.com>.
Thanks for the reply lance.

What does the actual exception mean? Does is it mean a request is being set
with a missing parameter to the autocomplete component? I vaguely remember
seeing this a long time ago while writing a custom autocomplete component.

As far as the logs, I'm hosting the app on Amazons Elastic Bean Stalk, so
finding the logs has proven to be a little difficult. They have a way to
return the logs to you through the EBS interface, however they seem pretty
useless since they do not appear to include my exception logs. I tried
logging into the EC2 instance and directly access the logs, however amazon
moved them out of the tomcat logs directory and I have yet to find them.
The exception your seeing is what's being email to me and my phone is
blowing up lol.


In my custom exception page, how do I go about determine it's user agent? I
really want to get these things on the ignore list.

This one also appears to be a popular one.

Input string 'w00tw00t.at.blackhats.romanian.anti-sec:)' is not valid; the
character


Thanks




On Wed, Feb 26, 2014 at 8:22 AM, Lance Java <la...@googlemail.com>wrote:

> Sounds like a webcrawler / bot to me. Do you have the apache logs? You
> could check the user agent header.
>
> As a fix, Google for the list of known bots and their user agent headers
> and customised tapestry's exception reporting so that exceptions are not
> logged for crawler user agents.
>



-- 
George Christman
www.CarDaddy.com
P.O. Box 735
Johnstown, New York

Re: Autocomplete exception blank query parameter.

Posted by Lance Java <la...@googlemail.com>.
Sounds like a webcrawler / bot to me. Do you have the apache logs? You
could check the user agent header.

As a fix, Google for the list of known bots and their user agent headers
and customised tapestry's exception reporting so that exceptions are not
logged for crawler user agents.