First, is it OK to use the dev list in this way, given that 5.0.9 is
up for a vote?
Second, trying 5.0.9, I'm getting NullPointerException when a
TextField is left empty. This wasn't the case in 5.0.7. I haven't
tried the "translate" or "nulls" attribute of TextField but I
figured
this is the ultimate basic case so I shouldn't need to.
Have I misunderstood what's required of TextField in 5.0.9?
Here's the form. The exception occurs if either TextField is left
empty or only spaces are entered:
<form t:type="form" t:id="form">
<table>
<tr>
<td>First Name:</td>
<td><input t:type="TextField"
value="firstName"/></td>
</tr>
<tr>
<td>Last Name:</td>
<td><input t:type="TextField"
value="lastName"/></td>
</tr>
</table>
<input type="submit" value="Display"/>
</form>
And the java. You'll see that this is an input screen that isn't
set
up in advance.
public class BasicInput1 {
private String _firstName;
private String _lastName;
@InjectPage
private BasicInput2 _basicInput2;
Object onSuccess() {
_basicInput2.onActivate(_firstName, _lastName);
return _basicInput2;
}
public String getFirstName() {
return _firstName;
}
public String getLastName() {
return _lastName;
}
public void setFirstName(String firstName) {
_firstName = firstName;
}
public void setLastName(String lastName) {
_lastName = lastName;
}
}
The stacktrace:
23:10:48,546 ERROR [RequestExceptionHandler] Processing of request
failed with uncaught exception:
org.apache.tapestry.runtime.ComponentEventException
org.apache.tapestry.runtime.ComponentEventException [at
classpath:jumpstart/web/pages/examples/input/BasicInput1.tml, line
7,
column 34]
at
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl
.triggerEvent(ComponentPageElementImpl.java:
973)
at
org
.apache
.tapestry
.internal
.services
.ComponentEventRequestHandlerImpl
.handle(ComponentEventRequestHandlerImpl.java:62)
at
org
.apache
.tapestry
.internal
.services
.ImmediateActionRenderResponseFilter
.handle(ImmediateActionRenderResponseFilter.java:42)
at
$
ComponentEventRequestHandler_117ab99912a
.handle($ComponentEventRequestHandler_117ab99912a.java)
at
org
.apache
.tapestry.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
at
$
ComponentEventRequestHandler_117ab99912a
.handle($ComponentEventRequestHandler_117ab99912a.java)
at org.apache.tapestry.services.TapestryModule
$39.handle(TapestryModule.java:2071)
at
$
ComponentEventRequestHandler_117ab99912a
.handle($ComponentEventRequestHandler_117ab99912a.java)
at
$
ComponentEventRequestHandler_117ab99902f
.handle($ComponentEventRequestHandler_117ab99902f.java)
at
org
.apache
.tapestry
.internal
.services
.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:
133)
at
$Dispatcher_117ab999030.dispatch($Dispatcher_117ab999030.java)
at
$Dispatcher_117ab999024.dispatch($Dispatcher_117ab999024.java)
at org.apache.tapestry.services.TapestryModule
$13.service(TapestryModule.java:924)
at
org
.apache
.tapestry
.internal
.services.LocalizationFilter.service(LocalizationFilter.java:
43)
at
$
RequestHandler_117ab999025.service($RequestHandler_117ab999025.java)
at org.apache.tapestry.services.TapestryModule
$3.service(TapestryModule.java:516)
at
$
RequestHandler_117ab999025.service($RequestHandler_117ab999025.java)
at org.apache.tapestry.services.TapestryModule
$2.service(TapestryModule.java:491)
at
$
RequestHandler_117ab999025.service($RequestHandler_117ab999025.java)
at
org
.apache
.tapestry
.internal
.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:
53)
at
$RequestFilter_117ab999023.service($RequestFilter_117ab999023.java)
at
$
RequestHandler_117ab999025.service($RequestHandler_117ab999025.java)
at
org
.apache
.tapestry
.internal
.services.StaticFilesFilter.service(StaticFilesFilter.java:79)
at
$
RequestHandler_117ab999025.service($RequestHandler_117ab999025.java)
at org.apache.tapestry.internal.services.CheckForUpdatesFilter
$2.invoke(CheckForUpdatesFilter.java:93)
at org.apache.tapestry.internal.services.CheckForUpdatesFilter
$2.invoke(CheckForUpdatesFilter.java:84)
at
org
.apache
.tapestry
.ioc
.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
at
org
.apache
.tapestry
.internal
.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:
106)
at
$
RequestHandler_117ab999025.service($RequestHandler_117ab999025.java)
at
$
RequestHandler_117ab99901d.service($RequestHandler_117ab99901d.java)
at org.apache.tapestry.services.TapestryModule
$12.service(TapestryModule.java:904)
at
$
HttpServletRequestHandler_117ab99901c
.service($HttpServletRequestHandler_117ab99901c.java)
at
org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:164)
at
org
.apache
.catalina
.core
.ApplicationFilterChain
.internalDoFilter(ApplicationFilterChain.java:
235)
at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
at
org
.jboss
.web
.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:
96)
at
org
.apache
.catalina
.core
.ApplicationFilterChain
.internalDoFilter(ApplicationFilterChain.java:
235)
at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
at
org
.apache
.catalina
.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
230)
at
org
.apache
.catalina
.core.StandardContextValve.invoke(StandardContextValve.java:
175)
at
org
.jboss
.web
.tomcat
.security
.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at
org
.jboss
.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:
84)
at
org
.apache
.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
at
org
.apache
.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
at
org
.jboss
.web
.tomcat
.service
.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:
157)
at
org
.apache
.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
109)
at
org
.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
262)
at
org
.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
844)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
446)
at java.lang.Thread.run(Thread.java:613)
Caused by: org.apache.tapestry.runtime.ComponentEventException
at
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl
.triggerEvent(ComponentPageElementImpl.java:
973)
at
org
.apache
.tapestry
.internal
.structure
.InternalComponentResourcesImpl
.triggerEvent(InternalComponentResourcesImpl.java:154)
at
org.apache.tapestry.corelib.components.Form.onAction(Form.java:388)
at
org
.apache
.tapestry.corelib.components.Form.dispatchComponentEvent(Form.java)
at
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl
.dispatchEvent(ComponentPageElementImpl.java:
840)
at
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl
.triggerEvent(ComponentPageElementImpl.java:
954)
... 50 more
Caused by: java.lang.NullPointerException
at
org
.apache
.tapestry
.internal
.TapestryInternalUtils
.escapePercentAndSlash(TapestryInternalUtils.java:514)
at
org
.apache
.tapestry
.internal
.TapestryInternalUtils.encodeContext(TapestryInternalUtils.java:504)
at
org
.apache
.tapestry
.internal
.services
.ComponentInvocationImpl.getPath(ComponentInvocationImpl.java:
101)
at
org
.apache
.tapestry
.internal
.services
.ComponentInvocationImpl.buildURI(ComponentInvocationImpl.java:60)
at
org
.apache.tapestry.internal.services.LinkImpl.buildURI(LinkImpl.java:
105)
at
org
.apache
.tapestry.internal.services.LinkImpl.toRedirectURI(LinkImpl.java:
120)
at
org
.apache
.tapestry
.internal.services.ResponseImpl.sendRedirect(ResponseImpl.java:69)
at
$Response_117ab999079.sendRedirect($Response_117ab999079.java)
at
$Response_117ab999012.sendRedirect($Response_117ab999012.java)
at
org
.apache
.tapestry
.internal
.services
.ActionRenderResponseGeneratorImpl
.generateResponse(ActionRenderResponseGeneratorImpl.java:45)
at
$
ActionRenderResponseGenerator_117ab999014
.generateResponse($ActionRenderResponseGenerator_117ab999014.java)
at
org
.apache
.tapestry
.internal
.services
.ComponentInstanceResultProcessor
.processResultValue(ComponentInstanceResultProcessor.java:53)
at
org
.apache
.tapestry
.internal
.services
.ComponentInstanceResultProcessor
.processResultValue(ComponentInstanceResultProcessor.java:25)
at
$
ComponentEventResultProcessor_117ab99912d
.processResultValue($ComponentEventResultProcessor_117ab99912d.java)
at
$
ComponentEventResultProcessor_117ab99912e
.processResultValue($ComponentEventResultProcessor_117ab99912e.java)
at
$
ComponentEventResultProcessor_117ab999031
.processResultValue($ComponentEventResultProcessor_117ab999031.java)
at
org
.apache
.tapestry
.internal
.services
.ComponentResultProcessorWrapper
.handleResult(ComponentResultProcessorWrapper.java:43)
at
org.apache.tapestry.internal.structure.ComponentPageElementImpl
$13.handleResult(ComponentPageElementImpl.java:936)
at
org
.apache
.tapestry.internal.services.EventImpl.storeResult(EventImpl.java:60)
at
jumpstart
.web.pages.examples.input.BasicInput1.dispatchComponentEvent
(BasicInput1.java)
at
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl
.dispatchEvent(ComponentPageElementImpl.java:
832)
at
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl
.triggerEvent(ComponentPageElementImpl.java:
954)
... 55 more
The exception page:
An unexpected application exception has occurred.
org.apache.tapestry.runtime.ComponentEventException
context
[Ljava.lang.String;@830a79
eventType
action
location
classpath:jumpstart/web/pages/examples/input/BasicInput1.tml, line
7,
column 34
2 <body>
3 <h1>Basic Input (1)</h1>
4
5 This page demonstrates the Form component with
TextField
components
and submit button handling. It does no validation.<br/><br/>
6
7 <form t:type="form" t:id="form">
8 <table>
9 <tr>
10 <td>First Name:</td>
11 <td><input
t:type="TextField"
value="firstName"/></td>
12 </tr>
org.apache.tapestry.runtime.ComponentEventException
context
[Ljava.lang.String;@830a79
eventType
success
java.lang.NullPointerException
Stack trace
org
.apache
.tapestry
.internal
.TapestryInternalUtils
.escapePercentAndSlash(TapestryInternalUtils.java:514)
org
.apache
.tapestry
.internal
.TapestryInternalUtils.encodeContext(TapestryInternalUtils.java:504)
org
.apache
.tapestry
.internal
.services
.ComponentInvocationImpl.getPath(ComponentInvocationImpl.java:
101)
org
.apache
.tapestry
.internal
.services
.ComponentInvocationImpl.buildURI(ComponentInvocationImpl.java:60)
org
.apache.tapestry.internal.services.LinkImpl.buildURI(LinkImpl.java:
105)
org
.apache
.tapestry.internal.services.LinkImpl.toRedirectURI(LinkImpl.java:
120)
org
.apache
.tapestry
.internal.services.ResponseImpl.sendRedirect(ResponseImpl.java:69)
org
.apache
.tapestry
.internal
.services
.ActionRenderResponseGeneratorImpl
.generateResponse(ActionRenderResponseGeneratorImpl.java:45)
org
.apache
.tapestry
.internal
.services
.ComponentInstanceResultProcessor
.processResultValue(ComponentInstanceResultProcessor.java:53)
org
.apache
.tapestry
.internal
.services
.ComponentInstanceResultProcessor
.processResultValue(ComponentInstanceResultProcessor.java:25)
org
.apache
.tapestry
.internal
.services
.ComponentResultProcessorWrapper
.handleResult(ComponentResultProcessorWrapper.java:43)
org.apache.tapestry.internal.structure.ComponentPageElementImpl
$13.handleResult(ComponentPageElementImpl.java:936)
org
.apache
.tapestry.internal.services.EventImpl.storeResult(EventImpl.java:60)
jumpstart
.web
.pages
.examples.input.BasicInput1.dispatchComponentEvent(BasicInput1.java)
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl
.dispatchEvent(ComponentPageElementImpl.java:
832)
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl
.triggerEvent(ComponentPageElementImpl.java:
954)
org
.apache
.tapestry
.internal
.structure
.InternalComponentResourcesImpl
.triggerEvent(InternalComponentResourcesImpl.java:154)
org.apache.tapestry.corelib.components.Form.onAction(Form.java:388)
org
.apache
.tapestry.corelib.components.Form.dispatchComponentEvent(Form.java)
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl
.dispatchEvent(ComponentPageElementImpl.java:
840)
org
.apache
.tapestry
.internal
.structure
.ComponentPageElementImpl
.triggerEvent(ComponentPageElementImpl.java:
954)
org
.apache
.tapestry
.internal
.services
.ComponentEventRequestHandlerImpl
.handle(ComponentEventRequestHandlerImpl.java:62)
org
.apache
.tapestry
.internal
.services
.ImmediateActionRenderResponseFilter
.handle(ImmediateActionRenderResponseFilter.java:42)
org
.apache
.tapestry.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
org.apache.tapestry.services.TapestryModule
$39.handle(TapestryModule.java:2071)
org
.apache
.tapestry
.internal
.services
.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:
133)
org.apache.tapestry.services.TapestryModule
$13.service(TapestryModule.java:924)
org
.apache
.tapestry
.internal
.services.LocalizationFilter.service(LocalizationFilter.java:
43)
org.apache.tapestry.services.TapestryModule
$3.service(TapestryModule.java:516)
org.apache.tapestry.services.TapestryModule
$2.service(TapestryModule.java:491)
org
.apache
.tapestry
.internal
.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:
53)
org
.apache
.tapestry
.internal
.services.StaticFilesFilter.service(StaticFilesFilter.java:79)
org.apache.tapestry.internal.services.CheckForUpdatesFilter
$2.invoke(CheckForUpdatesFilter.java:93)
org.apache.tapestry.internal.services.CheckForUpdatesFilter
$2.invoke(CheckForUpdatesFilter.java:84)
org
.apache
.tapestry
.ioc
.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
org
.apache
.tapestry
.internal
.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:
106)
org.apache.tapestry.services.TapestryModule
$12.service(TapestryModule.java:904)
org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:164)
org
.apache
.catalina
.core
.ApplicationFilterChain
.internalDoFilter(ApplicationFilterChain.java:
235)
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
org
.jboss
.web
.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:
96)
org
.apache
.catalina
.core
.ApplicationFilterChain
.internalDoFilter(ApplicationFilterChain.java:
235)
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
org
.apache
.catalina
.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
230)
org
.apache
.catalina
.core.StandardContextValve.invoke(StandardContextValve.java:
175)
org
.jboss
.web
.tomcat
.security
.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
org
.jboss
.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:
84)
org
.apache
.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
org
.apache
.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
org
.jboss
.web
.tomcat
.service
.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:
157)
org
.apache
.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
109)
org
.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
262)
org
.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
844)
org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
446)
java.lang.Thread.run(Thread.java:613)
Request
Context Path
/jumpstart
Request Path
/examples/input/basicinput1.form
Locale
en_US
Query Parameters
t:formdata
H4sIAAAAAAAAAFvzloG1XI1BJbUiMbcgJ7VYPzOvoLRE3ymxODPZE8Q0tCpJrShJy0zNSSkuYrDKL
0rXSyxITM5I1StJLEgtLimq1EvOL0rNyUzSS0osTtVzTAKKJSaXuIF0qASnlpQWOCaXZObnqYYe5n
4oevwPEwOjDwNPfGpOam5qXolfYm5qCYOQT1ZiWaJ
+TmJeun5wSVFmXrp1RUEJAyfcahKc6EaiEwO
K8pNTi4uDS5NyM4uLgQ6FOPfwuhSTtG/
zzjExMFQUlGswqBFjfbxBcSFDHQNDCQM3khjxukGaWQGx
57eLkwEAAA==
textfield
textfield_0
b
Headers
accept
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/
plain;q=0.8,image/png,*/*;q=0.5
accept-encoding
gzip, deflate
accept-language
en-us
connection
keep-alive
content-length
366
content-type
application/x-www-form-urlencoded
cookie
JSESSIONID=943A0DC434B21C8F518EC434709F7F2C
host
localhost:8180
referer
http://localhost:8180/jumpstart/examples/input/basicinput1
user-agent
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-us) AppleWebKit/
523.10.6
(KHTML, like Gecko) Version/3.0.4 Safari/523.10.6
Session
state:Start:form:defaultTracker
[EMAIL PROTECTED]
state:examples/input/BasicInput1:form:defaultTracker
[EMAIL PROTECTED]
Cheers,
Geoff