how to stop a view being constructed after a controller action returns?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

how to stop a view being constructed after a controller action returns?

hamishagain@dcs.shef.ac.uk
hi,

I'm getting behaviour that suggests that a view (GSP) is being constructed
after a controller action which writes directly to the response. is there a
way to explicitly say "don't forward to a view now?" what are the mechanisms
that grails uses for deciding whether a view is necessary?

thanks,
--
Hamish
http://www.dcs.shef.ac.uk/~hamish/

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

Maurice Nicholson old
I think it's the same as Spring: returning null means you have dealt
with the response yourself, so rendering the view isn't necessary.

Are you returning null?

Hamish Cunningham wrote:
> hi,
>
> I'm getting behaviour that suggests that a view (GSP) is being
> constructed after a controller action which writes directly to the
> response. is there a way to explicitly say "don't forward to a view
> now?" what are the mechanisms that grails uses for deciding whether a
> view is necessary?
>
> thanks,

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

Siegfried Puchbauer
I've allways used "return false" and never had a problem

Cheers, sigi

--
Siegfried Puchbauer

On 5/30/07, Maurice Nicholson <[hidden email]> wrote:
I think it's the same as Spring: returning null means you have dealt
with the response yourself, so rendering the view isn't necessary.

Are you returning null?

Hamish Cunningham wrote:
> hi,
>
> I'm getting behaviour that suggests that a view (GSP) is being
> constructed after a controller action which writes directly to the
> response. is there a way to explicitly say "don't forward to a view
> now?" what are the mechanisms that grails uses for deciding whether a
> view is necessary?
>
> thanks,

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email


Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

graemer
In reply to this post by hamishagain@dcs.shef.ac.uk
It shouldnt happen, but what version of Grails are you using just to
be sure we haven't broken something in 0.5.5 SVN

Cheers

On 5/30/07, Hamish Cunningham <[hidden email]> wrote:

> hi,
>
> I'm getting behaviour that suggests that a view (GSP) is being constructed
> after a controller action which writes directly to the response. is there a
> way to explicitly say "don't forward to a view now?" what are the mechanisms
> that grails uses for deciding whether a view is necessary?
>
> thanks,
> --
> Hamish
> http://www.dcs.shef.ac.uk/~hamish/
>
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>


--
Graeme Rocher
Grails Project Lead
http://grails.org

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

hamishagain@dcs.shef.ac.uk

> It shouldnt happen, but what version of Grails are you using just to
> be sure we haven't broken something in 0.5.5 SVN

I was getting this in 0.5.5 revision 4307; I updated to HEAD and the problem
went away

thanks!

--
Hamish
http://www.dcs.shef.ac.uk/~hamish/

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

graemer
Yes there was a point where this was a bug, inbetween my commits somewhere

Cheers

On 5/31/07, Hamish Cunningham <[hidden email]> wrote:

>
> > It shouldnt happen, but what version of Grails are you using just to
> > be sure we haven't broken something in 0.5.5 SVN
>
> I was getting this in 0.5.5 revision 4307; I updated to HEAD and the problem
> went away
>
> thanks!
>
> --
> Hamish
> http://www.dcs.shef.ac.uk/~hamish/
>
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>


--
Graeme Rocher
Grails Project Lead
http://grails.org

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

hamishagain@dcs.shef.ac.uk
hi again,

I now have another example of the same problem. I'm using code from NanoHTTPD
(copied from the static resources plugin) in a controller action to construct
a response for some static files. everything works fine when the MIME type is
e.g. image/gif, but when the type is text/html I get exceptions which suggest
that a view is being constructed after all. (returning null from the action
doesn't help.)

any ideas?

exceptions below: null id; bad output stream. the id is present in the current
action controller params; the response output stream is derived from a File
and is the same as is working for the image cases.

thanks

h


Error processing GSP: Cannot get property: id on null object
java.lang.NullPointerException: Cannot get property: id on null object
         at org.codehaus.groovy.runtime.Invoker.getProperty(Invoker.java:194)
         at
org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:205)
         at
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:500)
         at rails_app_views_wiki_area_gsp.run(rails_app_views_wiki_area_gsp:32)
         at
org.codehaus.groovy.grails.web.pages.GroovyPageWritable.writeTo(GroovyPagesWritable.java:105)
         at
org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:105)
         at
org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:86)
         at
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:249)
         at
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
         at
org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:262)
         at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
         at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
         at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
         at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
         at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:280)
         at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:171)
         at
org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:96)
         at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
         at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:161)
         at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
         at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
         at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
         at
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
         at
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
         at
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
         at
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
         at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
         at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
         at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635)
         at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
         at org.mortbay.http.HttpServer.service(HttpServer.java:954)
         at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
         at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983)
         at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
         at
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
         at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
/cow/wiki/area/3/?page=/:
java.lang.IllegalStateException: getOutputStream called
         at
org.mortbay.jetty.servlet.Dispatcher$DispatcherResponse.getWriter(Dispatcher.java:770)
         at
org.codehaus.groovy.grails.web.pages.GSPResponseWriter.flush(GSPResponseWriter.java:111)
         at
org.codehaus.groovy.grails.web.pages.GSPResponseWriter.close(GSPResponseWriter.java:98)
         at
org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:113)
         at
org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:86)
         at
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:249)
         at
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
         at
org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:262)
         at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
         at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
         at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
         at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
         at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:280)
         at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:171)
         at
org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:96)
         at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
         at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:161)
         at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
         at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
         at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
         at
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
         at
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
         at
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
         at
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
         at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
         at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
         at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635)
         at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
         at org.mortbay.http.HttpServer.service(HttpServer.java:954)
         at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
         at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983)
         at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
         at
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
         at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)



---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

hamishagain@dcs.shef.ac.uk

> exceptions below: null id; bad output stream. the id is present in the
> current action controller params; the response output stream is derived
> from a File and is the same as is working for the image cases.

but as I'm writing directly into the response no view should be constructed I
guess
--
Hamish
http://www.dcs.shef.ac.uk/~hamish/

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

graemer
In reply to this post by hamishagain@dcs.shef.ac.uk
Can you post your code

Cheers

On 5/31/07, Hamish Cunningham <[hidden email]> wrote:

> hi again,
>
> I now have another example of the same problem. I'm using code from NanoHTTPD
> (copied from the static resources plugin) in a controller action to construct
> a response for some static files. everything works fine when the MIME type is
> e.g. image/gif, but when the type is text/html I get exceptions which suggest
> that a view is being constructed after all. (returning null from the action
> doesn't help.)
>
> any ideas?
>
> exceptions below: null id; bad output stream. the id is present in the current
> action controller params; the response output stream is derived from a File
> and is the same as is working for the image cases.
>
> thanks
>
> h
>
>
> Error processing GSP: Cannot get property: id on null object
> java.lang.NullPointerException: Cannot get property: id on null object
>          at org.codehaus.groovy.runtime.Invoker.getProperty(Invoker.java:194)
>          at
> org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:205)
>          at
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:500)
>          at rails_app_views_wiki_area_gsp.run(rails_app_views_wiki_area_gsp:32)
>          at
> org.codehaus.groovy.grails.web.pages.GroovyPageWritable.writeTo(GroovyPagesWritable.java:105)
>          at
> org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:105)
>          at
> org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:86)
>          at
> org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:249)
>          at
> org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
>          at
> org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:262)
>          at
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
>          at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
>          at
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>          at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
>          at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:280)
>          at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:171)
>          at
> org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:96)
>          at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
>          at
> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:161)
>          at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
>          at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
>          at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>          at
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
>          at
> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
>          at
> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
>          at
> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
>          at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
>          at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
>          at
> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635)
>          at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
>          at org.mortbay.http.HttpServer.service(HttpServer.java:954)
>          at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
>          at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983)
>          at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
>          at
> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
>          at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
>          at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
> /cow/wiki/area/3/?page=/:
> java.lang.IllegalStateException: getOutputStream called
>          at
> org.mortbay.jetty.servlet.Dispatcher$DispatcherResponse.getWriter(Dispatcher.java:770)
>          at
> org.codehaus.groovy.grails.web.pages.GSPResponseWriter.flush(GSPResponseWriter.java:111)
>          at
> org.codehaus.groovy.grails.web.pages.GSPResponseWriter.close(GSPResponseWriter.java:98)
>          at
> org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:113)
>          at
> org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:86)
>          at
> org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:249)
>          at
> org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
>          at
> org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:262)
>          at
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
>          at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
>          at
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>          at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
>          at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:280)
>          at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:171)
>          at
> org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:96)
>          at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
>          at
> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:161)
>          at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
>          at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
>          at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>          at
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
>          at
> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
>          at
> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
>          at
> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
>          at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
>          at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
>          at
> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635)
>          at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
>          at org.mortbay.http.HttpServer.service(HttpServer.java:954)
>          at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
>          at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983)
>          at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
>          at
> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
>          at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
>          at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>


--
Graeme Rocher
Grails Project Lead
http://grails.org

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

hamishagain@dcs.shef.ac.uk
Graeme Rocher wrote:
> Can you post your code

see below (the exception happens after the line with ******** in)

I tried reverting grails to revision 4149 (which I take to be 0.5) and I still
got the null id exception but not the output stream exception

thanks, best

h


   /** This action supports browsing of a wiki area. */
   def browse = {
     log.debug("wiki browse action params: $params")

     // get the ?page= bit and derive a path from it in combination with the
     // wiki.path
     def wiki = Wiki.get(params.id)
     String path = wiki.path
     String page = params.page
     File pageFile = null

     // if no page path or the file is not HTML use NanoHTTPD to build
     // an appropriate response
     if(page == null || (! (page =~ '\\.[Hh][Tt][Mm][Ll]?$'))) {
       if(page == null) page = "/"
       String pageParent = new File(page).getParent()
       if(pageParent == null) pageParent = "/"
       File homeDir = new File(path)
       log.debug("page = $page, path = " + homeDir.getCanonicalPath())

       log.debug("calling nano.serveFile: page=$page, homeDir=$homeDir")
       NanoHTTPD nano = new NanoHTTPD()
       NanoHTTPD.Response nanoResponse =
         nano.serveFile(page, new Properties(), homeDir, true)
       log.debug(
         "serveFile response: mimeType=$nanoResponse.mimeType, " +
         "status=$nanoResponse.status"
       )

       if(nanoResponse.mimeType != null)
         response.contentType = nanoResponse.mimeType
       if(nanoResponse.status != null)
         response.status = new Integer(nanoResponse.status.substring(0,2))
       if(nanoResponse.header != null) {
         Enumeration e = nanoResponse.header.keys()
         while ( e.hasMoreElements() ) {
           String key = (String) e.nextElement()
           String value = nanoResponse.header.getProperty(key)
           response.addHeader(key, value)
           log.debug("response header: " + key + " " + value)
         }
       }
       if(nanoResponse.data != null)
         response.outputStream << nanoResponse.data
       else
         log.debug("response data is null")

       return null // no model, no view
//************ after this is where the exception gets thrown ************
     // should be a normal HTML file...
     } else {
       // does the file exist?
       pageFile = new File("$path$page")
       if(! pageFile.exists()) {
         render("<<<page = $path$page in wiki area $params.id doesn't exist>>>")
         return [ : ]
       }

       // get the body and forward a model to the area view
       String body = GFiles.getBody(pageFile)
       return [ wiki : wiki, body : body ]
     }

   } // browse

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

hamishagain@dcs.shef.ac.uk
PS the log output (on 0.5) is:


DEBUG grails.app.controller.WikiController
============================================================
DEBUG grails.app.controller.WikiController     wiki area action params:
["action":"area", "page":"/", "controller":"wiki", "id":"3"]
DEBUG grails.app.controller.WikiController     page = /, path =
/home/hamish/public_html
DEBUG grails.app.controller.WikiController     calling nano.serveFile: page=/,
homeDir=/home/hamish/public_html
DEBUG NanoHTTPD                                f=/home/hamish/public_html/
DEBUG NanoHTTPD                                f is directory
DEBUG NanoHTTPD
f=/home/hamish/public_html/index.html
DEBUG NanoHTTPD                                constructing input stream for
f=/home/hamish/public_html/index.html
DEBUG grails.app.controller.WikiController     serveFile response:
mimeType=text/html, status=200 OK
DEBUG grails.app.controller.WikiController     response header: Content-length
6153
DEBUG grails.app.controller.WikiController     response header: Content-range
0-6152/6153
Error processing GSP: Cannot get property: id on null object
java.lang.NullPointerException: Cannot get property: id on null object
         at org.codehaus.groovy.runtime.Invoker.getProperty(Invoker.java:194)
         at
org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:205)
         at
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:500)
         at
rails_app_views_wiki_browse_gsp.run(rails_app_views_wiki_browse_gsp:32)
         at
org.codehaus.groovy.grails.web.pages.GroovyPageWritable.writeTo(GroovyPagesWritable.java:105)
         at
org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:105)
         at
org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:86)
         at
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:249)
         at
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
         at
org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:262)
         at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
         at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
         at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
         at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
         at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:280)
         at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:171)
         at
org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:96)
         at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
         at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:145)
         at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
         at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
         at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
         at
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
         at
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
         at
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
         at
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
         at
org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
         at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
         at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
         at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
         at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635)
         at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
         at org.mortbay.http.HttpServer.service(HttpServer.java:954)
         at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
         at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983)
         at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
         at
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
         at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
         at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

graemer
Would be good if we get narrow this down to a smaller test case. For
example this:

    def show = {
                response.outputStream << "bar"
    }

Works fine in SVN head, even though there is a show.gsp that would be
otherwise rendered. Essentially the view will be rendered if the
response hasn't been committed. Try putting debug code before your
action exits. Something like:

assert response.committed

If the response hasn't been committed, either by writing to it or
whatever. Then grails will attempt to render the view

Cheers


On 5/31/07, Hamish Cunningham <[hidden email]> wrote:

> PS the log output (on 0.5) is:
>
>
> DEBUG grails.app.controller.WikiController
> ============================================================
> DEBUG grails.app.controller.WikiController     wiki area action params:
> ["action":"area", "page":"/", "controller":"wiki", "id":"3"]
> DEBUG grails.app.controller.WikiController     page = /, path =
> /home/hamish/public_html
> DEBUG grails.app.controller.WikiController     calling nano.serveFile: page=/,
> homeDir=/home/hamish/public_html
> DEBUG NanoHTTPD                                f=/home/hamish/public_html/
> DEBUG NanoHTTPD                                f is directory
> DEBUG NanoHTTPD
> f=/home/hamish/public_html/index.html
> DEBUG NanoHTTPD                                constructing input stream for
> f=/home/hamish/public_html/index.html
> DEBUG grails.app.controller.WikiController     serveFile response:
> mimeType=text/html, status=200 OK
> DEBUG grails.app.controller.WikiController     response header: Content-length
> 6153
> DEBUG grails.app.controller.WikiController     response header: Content-range
> 0-6152/6153
> Error processing GSP: Cannot get property: id on null object
> java.lang.NullPointerException: Cannot get property: id on null object
>          at org.codehaus.groovy.runtime.Invoker.getProperty(Invoker.java:194)
>          at
> org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:205)
>          at
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:500)
>          at
> rails_app_views_wiki_browse_gsp.run(rails_app_views_wiki_browse_gsp:32)
>          at
> org.codehaus.groovy.grails.web.pages.GroovyPageWritable.writeTo(GroovyPagesWritable.java:105)
>          at
> org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:105)
>          at
> org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:86)
>          at
> org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:249)
>          at
> org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
>          at
> org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:262)
>          at
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
>          at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
>          at
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>          at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
>          at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:280)
>          at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:171)
>          at
> org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:96)
>          at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
>          at
> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:145)
>          at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
>          at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
>          at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>          at
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
>          at
> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
>          at
> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
>          at
> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>          at
> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
>          at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
>          at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
>          at
> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635)
>          at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
>          at org.mortbay.http.HttpServer.service(HttpServer.java:954)
>          at org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
>          at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983)
>          at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
>          at
> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
>          at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
>          at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
>
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>


--
Graeme Rocher
Grails Project Lead
http://grails.org

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

hamishagain@dcs.shef.ac.uk
hi

I narrowed it down to setting the response mime type:

   def browse = {
     //response.contentType = "text/html"
     response.outputStream << "lkjsdflksdjflskdjfl"
     assert response.committed

     return null
   } // browse

this works; if I uncomment the response.contentType line then it breaks
(though setting the contentType to "image/gif" does work)

shall I raise a bug or is setting the contentType like this a mistake?

thanks for your help, best

h


Graeme Rocher wrote:

> Would be good if we get narrow this down to a smaller test case. For
> example this:
>
>    def show = {
>         response.outputStream << "bar"
>    }
>
> Works fine in SVN head, even though there is a show.gsp that would be
> otherwise rendered. Essentially the view will be rendered if the
> response hasn't been committed. Try putting debug code before your
> action exits. Something like:
>
> assert response.committed
>
> If the response hasn't been committed, either by writing to it or
> whatever. Then grails will attempt to render the view
>
> Cheers
>
>
> On 5/31/07, Hamish Cunningham <[hidden email]> wrote:
>> PS the log output (on 0.5) is:
>>
>>
>> DEBUG grails.app.controller.WikiController
>> ============================================================
>> DEBUG grails.app.controller.WikiController     wiki area action params:
>> ["action":"area", "page":"/", "controller":"wiki", "id":"3"]
>> DEBUG grails.app.controller.WikiController     page = /, path =
>> /home/hamish/public_html
>> DEBUG grails.app.controller.WikiController     calling nano.serveFile:
>> page=/,
>> homeDir=/home/hamish/public_html
>> DEBUG NanoHTTPD                                
>> f=/home/hamish/public_html/
>> DEBUG NanoHTTPD                                f is directory
>> DEBUG NanoHTTPD
>> f=/home/hamish/public_html/index.html
>> DEBUG NanoHTTPD                                constructing input
>> stream for
>> f=/home/hamish/public_html/index.html
>> DEBUG grails.app.controller.WikiController     serveFile response:
>> mimeType=text/html, status=200 OK
>> DEBUG grails.app.controller.WikiController     response header:
>> Content-length
>> 6153
>> DEBUG grails.app.controller.WikiController     response header:
>> Content-range
>> 0-6152/6153
>> Error processing GSP: Cannot get property: id on null object
>> java.lang.NullPointerException: Cannot get property: id on null object
>>          at
>> org.codehaus.groovy.runtime.Invoker.getProperty(Invoker.java:194)
>>          at
>> org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:205)
>>
>>          at
>> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:500)
>>
>>          at
>> rails_app_views_wiki_browse_gsp.run(rails_app_views_wiki_browse_gsp:32)
>>          at
>> org.codehaus.groovy.grails.web.pages.GroovyPageWritable.writeTo(GroovyPagesWritable.java:105)
>>
>>          at
>> org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:105)
>>
>>          at
>> org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:86)
>>
>>          at
>> org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:249)
>>
>>          at
>> org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
>>
>>          at
>> org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:262)
>>
>>          at
>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
>>
>>          at
>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
>>
>>          at
>> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
>>
>>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>          at
>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
>>          at
>> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
>>
>>          at
>> org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:280)
>>          at
>> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:171)
>>          at
>> org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:96)
>>
>>          at
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>>
>>          at
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>>
>>          at
>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
>>
>>          at
>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
>>
>>          at
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>>
>>          at
>> org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:145)
>>
>>          at
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>>
>>          at
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>>
>>          at
>> org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
>>
>>          at
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>>
>>          at
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>>
>>          at
>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
>>
>>          at
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>>
>>          at
>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
>>
>>          at
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>>
>>          at
>> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
>>
>>          at
>> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
>>          at
>> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
>>
>>          at
>> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
>>
>>          at
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>>
>>          at
>> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
>>
>>          at
>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
>>          at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
>>          at
>> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635)
>>
>>          at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
>>          at org.mortbay.http.HttpServer.service(HttpServer.java:954)
>>          at
>> org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
>>          at
>> org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983)
>>          at
>> org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
>>          at
>> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
>>          at
>> org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
>>          at
>> org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list please visit:
>>
>>     http://xircles.codehaus.org/manage_email
>>
>>
>
>

--
Hamish
http://www.dcs.shef.ac.uk/~hamish/

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

graemer
Yeah please raise an issue

Cheers

On 5/31/07, Hamish Cunningham <[hidden email]> wrote:

> hi
>
> I narrowed it down to setting the response mime type:
>
>    def browse = {
>      //response.contentType = "text/html"
>      response.outputStream << "lkjsdflksdjflskdjfl"
>      assert response.committed
>
>      return null
>    } // browse
>
> this works; if I uncomment the response.contentType line then it breaks
> (though setting the contentType to "image/gif" does work)
>
> shall I raise a bug or is setting the contentType like this a mistake?
>
> thanks for your help, best
>
> h
>
>
> Graeme Rocher wrote:
> > Would be good if we get narrow this down to a smaller test case. For
> > example this:
> >
> >    def show = {
> >         response.outputStream << "bar"
> >    }
> >
> > Works fine in SVN head, even though there is a show.gsp that would be
> > otherwise rendered. Essentially the view will be rendered if the
> > response hasn't been committed. Try putting debug code before your
> > action exits. Something like:
> >
> > assert response.committed
> >
> > If the response hasn't been committed, either by writing to it or
> > whatever. Then grails will attempt to render the view
> >
> > Cheers
> >
> >
> > On 5/31/07, Hamish Cunningham <[hidden email]> wrote:
> >> PS the log output (on 0.5) is:
> >>
> >>
> >> DEBUG grails.app.controller.WikiController
> >> ============================================================
> >> DEBUG grails.app.controller.WikiController     wiki area action params:
> >> ["action":"area", "page":"/", "controller":"wiki", "id":"3"]
> >> DEBUG grails.app.controller.WikiController     page = /, path =
> >> /home/hamish/public_html
> >> DEBUG grails.app.controller.WikiController     calling nano.serveFile:
> >> page=/,
> >> homeDir=/home/hamish/public_html
> >> DEBUG NanoHTTPD
> >> f=/home/hamish/public_html/
> >> DEBUG NanoHTTPD                                f is directory
> >> DEBUG NanoHTTPD
> >> f=/home/hamish/public_html/index.html
> >> DEBUG NanoHTTPD                                constructing input
> >> stream for
> >> f=/home/hamish/public_html/index.html
> >> DEBUG grails.app.controller.WikiController     serveFile response:
> >> mimeType=text/html, status=200 OK
> >> DEBUG grails.app.controller.WikiController     response header:
> >> Content-length
> >> 6153
> >> DEBUG grails.app.controller.WikiController     response header:
> >> Content-range
> >> 0-6152/6153
> >> Error processing GSP: Cannot get property: id on null object
> >> java.lang.NullPointerException: Cannot get property: id on null object
> >>          at
> >> org.codehaus.groovy.runtime.Invoker.getProperty(Invoker.java:194)
> >>          at
> >> org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:205)
> >>
> >>          at
> >> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:500)
> >>
> >>          at
> >> rails_app_views_wiki_browse_gsp.run(rails_app_views_wiki_browse_gsp:32)
> >>          at
> >> org.codehaus.groovy.grails.web.pages.GroovyPageWritable.writeTo(GroovyPagesWritable.java:105)
> >>
> >>          at
> >> org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:105)
> >>
> >>          at
> >> org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:86)
> >>
> >>          at
> >> org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:249)
> >>
> >>          at
> >> org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
> >>
> >>          at
> >> org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:262)
> >>
> >>          at
> >> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
> >>
> >>          at
> >> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
> >>
> >>          at
> >> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
> >>
> >>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> >>          at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> >>          at
> >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
> >>          at
> >> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
> >>
> >>          at
> >> org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:280)
> >>          at
> >> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:171)
> >>          at
> >> org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:96)
> >>
> >>          at
> >> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
> >>
> >>          at
> >> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
> >>
> >>          at
> >> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
> >>
> >>          at
> >> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
> >>
> >>          at
> >> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
> >>
> >>          at
> >> org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:145)
> >>
> >>          at
> >> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
> >>
> >>          at
> >> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
> >>
> >>          at
> >> org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
> >>
> >>          at
> >> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
> >>
> >>          at
> >> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
> >>
> >>          at
> >> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
> >>
> >>          at
> >> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
> >>
> >>          at
> >> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
> >>
> >>          at
> >> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
> >>
> >>          at
> >> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
> >>
> >>          at
> >> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
> >>          at
> >> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
> >>
> >>          at
> >> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
> >>
> >>          at
> >> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
> >>
> >>          at
> >> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
> >>
> >>          at
> >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
> >>          at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
> >>          at
> >> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635)
> >>
> >>          at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
> >>          at org.mortbay.http.HttpServer.service(HttpServer.java:954)
> >>          at
> >> org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
> >>          at
> >> org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983)
> >>          at
> >> org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
> >>          at
> >> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
> >>          at
> >> org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
> >>          at
> >> org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe from this list please visit:
> >>
> >>     http://xircles.codehaus.org/manage_email
> >>
> >>
> >
> >
>
> --
> Hamish
> http://www.dcs.shef.ac.uk/~hamish/
>
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
>
>     http://xircles.codehaus.org/manage_email
>
>


--
Graeme Rocher
Grails Project Lead
http://grails.org

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply | Threaded
Open this post in threaded view
|

Re: how to stop a view being constructed after a controller action returns?

hamishagain@dcs.shef.ac.uk
GRAILS-1223

not high priority for me as I have a workaround

tnx

h


Graeme Rocher wrote:

> Yeah please raise an issue
>
> Cheers
>
> On 5/31/07, Hamish Cunningham <[hidden email]> wrote:
>> hi
>>
>> I narrowed it down to setting the response mime type:
>>
>>    def browse = {
>>      //response.contentType = "text/html"
>>      response.outputStream << "lkjsdflksdjflskdjfl"
>>      assert response.committed
>>
>>      return null
>>    } // browse
>>
>> this works; if I uncomment the response.contentType line then it breaks
>> (though setting the contentType to "image/gif" does work)
>>
>> shall I raise a bug or is setting the contentType like this a mistake?
>>
>> thanks for your help, best
>>
>> h
>>
>>
>> Graeme Rocher wrote:
>> > Would be good if we get narrow this down to a smaller test case. For
>> > example this:
>> >
>> >    def show = {
>> >         response.outputStream << "bar"
>> >    }
>> >
>> > Works fine in SVN head, even though there is a show.gsp that would be
>> > otherwise rendered. Essentially the view will be rendered if the
>> > response hasn't been committed. Try putting debug code before your
>> > action exits. Something like:
>> >
>> > assert response.committed
>> >
>> > If the response hasn't been committed, either by writing to it or
>> > whatever. Then grails will attempt to render the view
>> >
>> > Cheers
>> >
>> >
>> > On 5/31/07, Hamish Cunningham <[hidden email]> wrote:
>> >> PS the log output (on 0.5) is:
>> >>
>> >>
>> >> DEBUG grails.app.controller.WikiController
>> >> ============================================================
>> >> DEBUG grails.app.controller.WikiController     wiki area action
>> params:
>> >> ["action":"area", "page":"/", "controller":"wiki", "id":"3"]
>> >> DEBUG grails.app.controller.WikiController     page = /, path =
>> >> /home/hamish/public_html
>> >> DEBUG grails.app.controller.WikiController     calling nano.serveFile:
>> >> page=/,
>> >> homeDir=/home/hamish/public_html
>> >> DEBUG NanoHTTPD
>> >> f=/home/hamish/public_html/
>> >> DEBUG NanoHTTPD                                f is directory
>> >> DEBUG NanoHTTPD
>> >> f=/home/hamish/public_html/index.html
>> >> DEBUG NanoHTTPD                                constructing input
>> >> stream for
>> >> f=/home/hamish/public_html/index.html
>> >> DEBUG grails.app.controller.WikiController     serveFile response:
>> >> mimeType=text/html, status=200 OK
>> >> DEBUG grails.app.controller.WikiController     response header:
>> >> Content-length
>> >> 6153
>> >> DEBUG grails.app.controller.WikiController     response header:
>> >> Content-range
>> >> 0-6152/6153
>> >> Error processing GSP: Cannot get property: id on null object
>> >> java.lang.NullPointerException: Cannot get property: id on null object
>> >>          at
>> >> org.codehaus.groovy.runtime.Invoker.getProperty(Invoker.java:194)
>> >>          at
>> >>
>> org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:205)
>>
>> >>
>> >>          at
>> >>
>> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:500)
>>
>> >>
>> >>          at
>> >>
>> rails_app_views_wiki_browse_gsp.run(rails_app_views_wiki_browse_gsp:32)
>> >>          at
>> >>
>> org.codehaus.groovy.grails.web.pages.GroovyPageWritable.writeTo(GroovyPagesWritable.java:105)
>>
>> >>
>> >>          at
>> >>
>> org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderWithTemplateEngine(GroovyPageView.java:105)
>>
>> >>
>> >>          at
>> >>
>> org.codehaus.groovy.grails.web.servlet.view.GroovyPageView.renderMergedOutputModel(GroovyPageView.java:86)
>>
>> >>
>> >>          at
>> >>
>> org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:249)
>>
>> >>
>> >>          at
>> >>
>> org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063)
>>
>> >>
>> >>          at
>> >>
>> org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:262)
>>
>> >>
>> >>          at
>> >>
>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736)
>>
>> >>
>> >>          at
>> >>
>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
>>
>> >>
>> >>          at
>> >>
>> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
>>
>> >>
>> >>          at
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>> >>          at
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>> >>          at
>> >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
>> >>          at
>> >>
>> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
>>
>> >>
>> >>          at
>> >> org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:280)
>> >>          at
>> >> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:171)
>> >>          at
>> >>
>> org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:96)
>>
>> >>
>> >>          at
>> >>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>>
>> >>
>> >>          at
>> >>
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>>
>> >>
>> >>          at
>> >>
>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
>>
>> >>
>> >>          at
>> >>
>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
>>
>> >>
>> >>          at
>> >>
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>>
>> >>
>> >>          at
>> >>
>> org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:145)
>>
>> >>
>> >>          at
>> >>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>>
>> >>
>> >>          at
>> >>
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>>
>> >>
>> >>          at
>> >>
>> org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:54)
>>
>> >>
>> >>          at
>> >>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>>
>> >>
>> >>          at
>> >>
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>>
>> >>
>> >>          at
>> >>
>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
>>
>> >>
>> >>          at
>> >>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
>>
>> >>
>> >>          at
>> >>
>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
>>
>> >>
>> >>          at
>> >>
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>>
>> >>
>> >>          at
>> >>
>> org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
>>
>> >>
>> >>          at
>> >>
>> org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
>> >>          at
>> >>
>> org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
>>
>> >>
>> >>          at
>> >>
>> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
>>
>> >>
>> >>          at
>> >>
>> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
>>
>> >>
>> >>          at
>> >>
>> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
>>
>> >>
>> >>          at
>> >>
>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
>> >>          at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
>> >>          at
>> >>
>> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635)
>>
>> >>
>> >>          at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
>> >>          at org.mortbay.http.HttpServer.service(HttpServer.java:954)
>> >>          at
>> >> org.mortbay.http.HttpConnection.service(HttpConnection.java:816)
>> >>          at
>> >> org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983)
>> >>          at
>> >> org.mortbay.http.HttpConnection.handle(HttpConnection.java:833)
>> >>          at
>> >>
>> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
>> >>          at
>> >> org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
>> >>          at
>> >> org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe from this list please visit:
>> >>
>> >>     http://xircles.codehaus.org/manage_email
>> >>
>> >>
>> >
>> >
>>
>> --
>> Hamish
>> http://www.dcs.shef.ac.uk/~hamish/
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list please visit:
>>
>>     http://xircles.codehaus.org/manage_email
>>
>>
>
>

--
Hamish
http://www.dcs.shef.ac.uk/~hamish/

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email