NPE in DefaultActionBeanPropertyBinder due to error in ActionBean implementation
--------------------------------------------------------------------------------

                 Key: STS-408
                 URL: http://mc4j.org/jira/browse/STS-408
             Project: Stripes
          Issue Type: Bug
          Components: Validation
    Affects Versions: Release 1.4.3
            Reporter: Thomas Biskup
         Assigned To: Tim Fennell
            Priority: Trivial


I'm really nitpicking here but that is what you get for providing such great 
exception messages in the usual cases ;-) I'm just starting out with Stripes 
and while starting a small sample project I made a stupid mistake implementing 
the action bean (that's what you get for using code wizards while having a 
cold) which resulted in always returning null from my getContext method.

Stripes also reacted with a NPE and I thought it might be nice to have a robust 
handling for such situations (_really_ nitpicking here, I know - take it as a 
praise for the quality of the framework).


The stack trace is:

net.sourceforge.stripes.exception.StripesServletException: Unhandled exception 
caught by the default exception handler.
        
net.sourceforge.stripes.exception.DefaultExceptionHandler.handle(DefaultExceptionHandler.java:45)
        
net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:183)


root cause 

java.lang.NullPointerException
        
net.sourceforge.stripes.controller.DefaultActionBeanPropertyBinder.validateRequiredFields(DefaultActionBeanPropertyBinder.java:589)
        
net.sourceforge.stripes.controller.DefaultActionBeanPropertyBinder.bind(DefaultActionBeanPropertyBinder.java:241)
        
net.sourceforge.stripes.controller.DispatcherHelper$3.intercept(DispatcherHelper.java:185)
        
net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:157)
        
net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:107)
        
net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:154)
        
net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:73)
        
net.sourceforge.stripes.controller.DispatcherHelper.doBindingAndValidation(DispatcherHelper.java:182)
        
net.sourceforge.stripes.controller.DispatcherServlet.doBindingAndValidation(DispatcherServlet.java:217)
        
net.sourceforge.stripes.controller.DispatcherServlet.doPost(DispatcherServlet.java:142)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        
net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:180)

My suggested fix:

Add a null check in the Stripes sources where the action bean is looked up 
initially (don't know where that is - I have been learning Stripes for 20 
minutes now ;-). If the context is null throw some appropriate exception with a 
message like "The action bean context of action bean %1 is null - there seems 
to be an implementation problem in your action bean. Check the 'getContext'" 
method."

The fix seems reasonable to me since I was bewildered for a second while trying 
my initial project code and believed to have made a mistake when defining the 
actual business properties. All other problems I encountered beforehand (very 
few) yielded very nice Stripes responses. This one was surprising... end of 
nitpicking.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://mc4j.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to