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
H4sIAAAAAAAAAFvzloG1XI1BJbUiMbcgJ7VYPzOvoLRE3ymxODPZE8Q0tCpJrShJy0zNSSkuYrDKL0rXSyxITM5I1StJLEgtLimq1EvOL0rNyUzSS0osTtVzTAKKJSaXuIF0qASnlpQWOCaXZObnqYYe5n4oevwPEwOjDwNPfGpOam5qXolfYm5qCYOQT1ZiWaJ+TmJeun5wSVFmXrp1RUEJAyfcahKc6EaiEwOK8pNTi4uDS5NyM4uLgQ6FOPfwuhSTtG/zzjExMFQUlGswqBFjfbxBcSFDHQNDCQM3khjxukGaWQGx57eLkwEAAA==
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

Reply via email to