passing Requestcycle is kind of useless.., PageRequestHandlerTracker can itself get the current requestcycle,i think separate methods like getLastHandler() and getFirstHandler() can be added , they can just delegate to the respectve getMethod(RequestCycle)
On Wed, Aug 29, 2012 at 1:32 PM, Martin Grigorov <[email protected]> wrote: > Thanks ! > > On Wed, Aug 29, 2012 at 10:00 AM, James Eliyezar <[email protected]> wrote: >> Updated the wiki "Request Cycle in Wicket >> 1.5<https://cwiki.apache.org/confluence/display/WICKET/RequestCycle+in+Wicket+1.5> >> " >> >> On Wed, Aug 29, 2012 at 3:31 PM, James Eliyezar <[email protected]> wrote: >> >>> That was fast Martin. I'm working on the wiki now. >>> >>> >>> On Wed, Aug 29, 2012 at 3:27 PM, Martin Grigorov >>> <[email protected]>wrote: >>> >>>> >>>> https://git-wip-us.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=a5a1fe98e3b76110c6827b5744bf83f45ab0aac4 >>>> >>>> On Wed, Aug 29, 2012 at 9:19 AM, James Eliyezar <[email protected]> >>>> wrote: >>>> > I like that deal.. :-) >>>> > >>>> > On Wed, Aug 29, 2012 at 3:09 PM, Martin Grigorov <[email protected] >>>> >wrote: >>>> > >>>> >> I'll improve the javadoc. You improve the wiki page ;-) >>>> >> >>>> >> On Wed, Aug 29, 2012 at 9:07 AM, James Eliyezar <[email protected]> >>>> >> wrote: >>>> >> > Thanks Martin for the info. >>>> >> > A note in PageRequestHandlerTracker's javadoc can be very useful. >>>> >> > And it will be great if this is reflected in the wiki page "Request >>>> Cycle >>>> >> > in wicket 1.5< >>>> >> https://cwiki.apache.org/WICKET/requestcycle-in-wicket-15.html> >>>> >> > ". >>>> >> > >>>> >> > On Wed, Aug 29, 2012 at 3:03 PM, Martin Grigorov < >>>> [email protected] >>>> >> >wrote: >>>> >> > >>>> >> >> Hi, >>>> >> >> >>>> >> >> Yes, you have to register it. >>>> >> >> It is not registered by default because not everyone needs it. >>>> >> >> >>>> >> >> On Wed, Aug 29, 2012 at 9:01 AM, James Eliyezar < >>>> [email protected]> >>>> >> >> wrote: >>>> >> >> > Guys, >>>> >> >> > >>>> >> >> > From the javadoc of IRequestCycleListener, I found that we have to >>>> >> >> > explicitly register the implementations. >>>> >> >> > I thought PageRequestHandlerTracker would have been registered by >>>> >> default >>>> >> >> > as that's from wicket. >>>> >> >> > So, when I registered it manually, it worked as expected. This is >>>> how >>>> >> I >>>> >> >> > registered it in the wicket application's "init" method. >>>> >> >> > >>>> >> >> > @Override >>>> >> >> >> public void init() >>>> >> >> >> { >>>> >> >> >> super.init(); >>>> >> >> >> getRequestCycleListeners().add(new >>>> >> PageRequestHandlerTracker()); >>>> >> >> >> } >>>> >> >> >> >>>> >> >> > >>>> >> >> > On Wed, Aug 29, 2012 at 2:41 PM, James Eliyezar < >>>> [email protected]> >>>> >> >> wrote: >>>> >> >> > >>>> >> >> >> Should I register PageRequestHandlerTracker anywhere? >>>> >> >> >> >>>> >> >> >> >>>> >> >> >> On Wed, Aug 29, 2012 at 2:40 PM, James Eliyezar < >>>> [email protected] >>>> >> >> >wrote: >>>> >> >> >> >>>> >> >> >>> Alright Paul. >>>> >> >> >>> >>>> >> >> >>> This is my code: >>>> >> >> >>> >>>> >> >> >>> public class HomePage extends WebPage >>>> >> >> >>>> { >>>> >> >> >>>> private static Logger logger = >>>> >> >> >>>> LoggerFactory.getLogger(HomePage.class); >>>> >> >> >>>> private static final long serialVersionUID = 1L; >>>> >> >> >>>> >>>> >> >> >>>> public HomePage(final PageParameters parameters) >>>> >> >> >>>> { >>>> >> >> >>>> add(new Label("version", >>>> >> >> >>>> getApplication().getFrameworkSettings().getVersion())); >>>> >> >> >>>> try { >>>> >> >> >>>> IPageRequestHandler lastHandler = >>>> >> >> >>>> PageRequestHandlerTracker.getLastHandler(RequestCycle.get()); >>>> >> >> >>>> logger.debug("Last handler: {}", lastHandler); >>>> >> >> >>>> logger.debug("Requested page", >>>> lastHandler.getPage()); >>>> >> >> >>>> } catch (Exception ex) { >>>> >> >> >>>> logger.error("Error", ex); >>>> >> >> >>>> } >>>> >> >> >>>> } >>>> >> >> >>>> } >>>> >> >> >>>> >>>> >> >> >>>> >>>> >> >> >>> This is the log with exception stack trace: >>>> >> >> >>> >>>> >> >> >>> [INFO] Started Jetty Server >>>> >> >> >>>> DEBUG - HomePage - Last handler: null >>>> >> >> >>>> ERROR - DefaultExceptionMapper - Unexpected error occurred >>>> >> >> >>>> org.apache.wicket.WicketRuntimeException: Can't instantiate >>>> page >>>> >> using >>>> >> >> >>>> constructor 'public >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.quickstart.HomePage(org.apache.wicket.request.mapper.parameter.PageParameters)' >>>> >> >> >>>> and argument ''. Might be it doesn't exist, may be it is not >>>> >> visible >>>> >> >> >>>> (public). >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:193) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:76) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:46) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:103) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.request.handler.PageProvider.resolvePageInstance(PageProvider.java:274) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.request.handler.PageProvider.getPageInstance(PageProvider.java:165) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:93) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:237) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:167) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:784) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:255) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:212) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:283) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1326) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.handler.ContextHandler.__doHandle(ContextHandler.java:940) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:874) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) >>>> >> >> >>>> at org.eclipse.jetty.server.Server.handle(Server.java:349) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:904) >>>> >> >> >>>> at >>>> >> >> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:565) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:217) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:46) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) >>>> >> >> >>>> at java.lang.Thread.run(Thread.java:662) >>>> >> >> >>>> Caused by: java.lang.reflect.InvocationTargetException >>>> >> >> >>>> at >>>> >> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>>> >> >> >>>> Method) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >>>> >> >> >>>> at >>>> >> java.lang.reflect.Constructor.newInstance(Constructor.java:513) >>>> >> >> >>>> at >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:170) >>>> >> >> >>>> ... 41 more >>>> >> >> >>>> Caused by: java.lang.NullPointerException >>>> >> >> >>>> at >>>> >> org.apache.wicket.quickstart.HomePage.<init>(HomePage.java:22) >>>> >> >> >>>> ... 46 more >>>> >> >> >>>> >>>> >> >> >>>> >>>> >> >> >>> I've attached a quickstart project to recreate the problem. >>>> >> >> >>> >>>> >> >> >>> - Unzip it >>>> >> >> >>> - mvn clean package jetty:run >>>> >> >> >>> - Point your browser to http://localhost:8080 >>>> >> >> >>> - Watch out the console for the exception. >>>> >> >> >>> >>>> >> >> >>> >>>> >> >> >>> On Wed, Aug 29, 2012 at 12:53 PM, Paul BorČ™ <[email protected]> >>>> wrote: >>>> >> >> >>> >>>> >> >> >>>> Might help if you provide a stack trace for the NPE :) >>>> >> >> >>>> >>>> >> >> >>>> Have a great day, >>>> >> >> >>>> Paul BorČ™ >>>> >> >> >>>> >>>> >> >> >>>> On Aug 29, 2012, at 0:37, James Eliyezar <[email protected]> >>>> >> wrote: >>>> >> >> >>>> >>>> >> >> >>>> > Hi, >>>> >> >> >>>> > >>>> >> >> >>>> > We recently migrated our application to wicket-1.5.8. >>>> >> >> >>>> > >>>> >> >> >>>> > We have an audit aspect based on Spring AOP that shall log >>>> the >>>> >> >> actions >>>> >> >> >>>> > performed in the current page. >>>> >> >> >>>> > In wicket 1.4 we use to get that like >>>> >> >> >>>> > "RequestCycle.get().getResponsePage()". >>>> >> >> >>>> > >>>> >> >> >>>> > This has changed and I know that wicket 1.5 doesn't support >>>> this >>>> >> >> >>>> anymore. >>>> >> >> >>>> > >>>> >> >> >>>> > The suggested method as per the wiki is to "use a custom >>>> >> >> >>>> > RequestCycleListener< >>>> >> >> >>>> https://cwiki.apache.org/WICKET/requestcycle-in-wicket-15.html >>>> > >>>> >> >> >>>> > ". >>>> >> >> >>>> > >>>> >> >> >>>> > Fortunately, as highlighted in the mailing list, there is a >>>> new >>>> >> >> class >>>> >> >> >>>> in >>>> >> >> >>>> > wicket 1.5.8 named >>>> >> >> >>>> > PageRequestHandlerTracker< >>>> >> >> >>>> >>>> >> >> >>>> >> >>>> http://apache-wicket.1842946.n4.nabble.com/Interpolate-response-with-IResponseFilter-td4651476.html >>>> >> >> >>>> >to >>>> >> >> >>>> > meet this common requirement. >>>> >> >> >>>> > >>>> >> >> >>>> > However, when we use >>>> >> >> >>>> > PageRequestHandlerTracker.getLastHandler(RequestCycle.get()), >>>> >> >> >>>> > and then attempt to call #getPage(), a null pointer >>>> exception is >>>> >> >> >>>> thrown. >>>> >> >> >>>> > >>>> >> >> >>>> > Am I doing something wrong here? Please give your >>>> suggestions. >>>> >> >> >>>> > >>>> >> >> >>>> > -- >>>> >> >> >>>> > Thanks & regards >>>> >> >> >>>> > James Selvakumar >>>> >> >> >>>> > mcruncher.com >>>> >> >> >>>> >>>> >> >> >>>> >>>> >> --------------------------------------------------------------------- >>>> >> >> >>>> To unsubscribe, e-mail: [email protected] >>>> >> >> >>>> For additional commands, e-mail: [email protected] >>>> >> >> >>>> >>>> >> >> >>>> >>>> >> >> >>> >>>> >> >> >>> >>>> >> >> >>> -- >>>> >> >> >>> Thanks & regards >>>> >> >> >>> James Selvakumar >>>> >> >> >>> mcruncher.com >>>> >> >> >>> >>>> >> >> >>> >>>> >> >> >> >>>> >> >> >> >>>> >> >> >> -- >>>> >> >> >> Thanks & regards >>>> >> >> >> James Selvakumar >>>> >> >> >> mcruncher.com >>>> >> >> >> >>>> >> >> >> >>>> >> >> > >>>> >> >> > >>>> >> >> > -- >>>> >> >> > Thanks & regards >>>> >> >> > James Selvakumar >>>> >> >> > mcruncher.com >>>> >> >> >>>> >> >> >>>> >> >> >>>> >> >> -- >>>> >> >> Martin Grigorov >>>> >> >> jWeekend >>>> >> >> Training, Consulting, Development >>>> >> >> http://jWeekend.com >>>> >> >> >>>> >> >> >>>> --------------------------------------------------------------------- >>>> >> >> To unsubscribe, e-mail: [email protected] >>>> >> >> For additional commands, e-mail: [email protected] >>>> >> >> >>>> >> >> >>>> >> > >>>> >> > >>>> >> > -- >>>> >> > Thanks & regards >>>> >> > James Selvakumar >>>> >> > mcruncher.com >>>> >> >>>> >> >>>> >> >>>> >> -- >>>> >> Martin Grigorov >>>> >> jWeekend >>>> >> Training, Consulting, Development >>>> >> http://jWeekend.com >>>> >> >>>> >> --------------------------------------------------------------------- >>>> >> To unsubscribe, e-mail: [email protected] >>>> >> For additional commands, e-mail: [email protected] >>>> >> >>>> >> >>>> > >>>> > >>>> > -- >>>> > Thanks & regards >>>> > James Selvakumar >>>> > mcruncher.com >>>> >>>> >>>> >>>> -- >>>> Martin Grigorov >>>> jWeekend >>>> Training, Consulting, Development >>>> http://jWeekend.com >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>>> >>> >>> >>> -- >>> Thanks & regards >>> James Selvakumar >>> mcruncher.com >>> >>> >> >> >> -- >> Thanks & regards >> James Selvakumar >> mcruncher.com > > > > -- > Martin Grigorov > jWeekend > Training, Consulting, Development > http://jWeekend.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > -- regards, Vineet Semwal --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
