You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by jchappelle <jc...@4redi.com> on 2013/03/26 02:51:57 UTC

NullPointerException in Page constructor

We have just upgraded from wicket 1.5.4 to 1.5.10 and we are getting a
NullPointerException in the constructor of all the pages. It is happening
because our AuthorizationStrategy.isActionAuthorized calls a method on the
on our BasePage class. A NullPointerException occurrs in that method because
the constructor of our BasePage has not completed. 

This did not occur in 1.5.4 so something must have changed between 1.5.4 and
1.5.10 to cause the AuthorizationStrategy.isActionAuthorized method to be
called in the constructor of Component. I'm guessing this may be related to
a security fix?

My question is this. What is the best way to handle this? I tried moving the
code in the constructor of our BasePage to the onInitialize method of our
BasePage but that does not fix the issue. Any suggestions?

Thanks,

Josh



--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/NullPointerException-in-Page-constructor-tp4657502.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: NullPointerException in Page constructor

Posted by jchappelle <jc...@4redi.com>.
Sorry I left out HomePage. Here it is.


public class HomePage extends MasterPage
{
	@Override
	protected WebMarkupContainer makeBodyPanel(String id, PageParameters parms,
Object[] objParms)
	{
		return new HomePanel(id);
	}
}




--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/NullPointerException-in-Page-constructor-tp4657502p4657520.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: NullPointerException in Page constructor

Posted by jchappelle <jc...@4redi.com>.
Here is MasterPage and below it is it's parent class BasePage.



public abstract class MasterPage extends BasePage implements Protected,
ProtectedComponent
{
	private static final String bodyId = "bodyPanel";
	
	private final BaseProtectedComponent protection;
	
	abstract protected WebMarkupContainer makeBodyPanel(String id,
PageParameters parms, Object[] objParms);

	public MasterPage()
	{
		this(new PageParameters(), new Object[0]);
	}

	public MasterPage(PageParameters parms, Object[] objParms)
	{
		this(parms, objParms, new UnprotectedPermission());
	}

	public MasterPage(PageParameters parms, Object[] objParms, MyPermission
permission)
	{
		super(parms);
		
		if(!isErrorPage())
		{
			MySession.get().resetBreadCrumbState();
		}
		this.protection = BaseProtectedComponent.makeRenderProtection(permission);
		setOutputMarkupId(true);

		add(new TimeoutMessagePanel("timeoutMessagePanel"));
		add(makeBodyPanel(bodyId, parms, objParms));
		add(new MyMenuPanel("menuPanel"));
	}

	public boolean isProtectedComponentAction(final Action action)
	{
		return protection.isProtectedComponentAction(action);
	}

	public MyPermission getRequiredPermission()
	{
		return protection.getRequiredPermission();
	}
}

public abstract class BasePage extends WebPage
{
	public BasePage()
	{
		super();
		init();
	}

	public BasePage(IModel<?> model)
	{
		super(model);
		init();
	}

	public BasePage(PageParameters parameters)
	{
		super(parameters);
		init();
	}
	
	private void init()
	{
		add(new Label("applicationTitle", makeTitleModel()));
		add(new JQueryHeaderContributor());
		add(new MainHeaderPanel("mainHeaderPanel"));
		add(new MainFooterPanel("mainFooterPanel"));
	}
	
	protected IModel<String> makeTitleModel()
	{
		return Model.of("My App");
	}
}





--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/NullPointerException-in-Page-constructor-tp4657502p4657519.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: NullPointerException in Page constructor

Posted by Thomas Götz <to...@richmountain.de>.
Please post the code of MasterPage and HomePage, or at least MasterPage#isProtectedComponentAction.

   -Tom


On 26.03.2013, at 15:04, jchappelle <jc...@4redi.com> wrote:

> Sure thing. Obviously the last two methods are getting in to my code but this
> will let you see how it gets there.
> 
> 
> Message: Can't instantiate page using constructor 'public
> com.mycompany.ui.HomePage()'. Might be it doesn't exist, may be it is not
> visible (public).
> Root cause:
> java.lang.NullPointerException
> at
> com.mycompany.ui.MasterPage.isProtectedComponentAction(MasterPage.java:58)
> at
> com.mycompany.ui.AbstractRiskAuthorizationStrategy.isActionAuthorized(AbstractRiskAuthorizationStrategy.java:39)
> at org.apache.wicket.Component.isActionAuthorized(Component.java:2037)
> at org.apache.wicket.Component.isEnableAllowed(Component.java:2047)
> at org.apache.wicket.Component.isEnabledInHierarchy(Component.java:4420)
> at org.apache.wicket.Component.isStateless(Component.java:2082)
> at org.apache.wicket.Page.isPageStateless(Page.java:485)
> at
> org.apache.wicket.page.AbstractPageManager.touchPage(AbstractPageManager.java:123)
> at
> org.apache.wicket.page.PageManagerDecorator.touchPage(PageManagerDecorator.java:56)
> at
> org.apache.wicket.page.PageAccessSynchronizer$2.touchPage(PageAccessSynchronizer.java:273)
> at org.apache.wicket.Page.dirty(Page.java:324)
> at org.apache.wicket.markup.html.WebPage.dirty(WebPage.java:321)
> at org.apache.wicket.Page.init(Page.java:740)
> at org.apache.wicket.Page.<init>(Page.java:215)
> at org.apache.wicket.Page.<init>(Page.java:194)
> at org.apache.wicket.markup.html.WebPage.<init>(WebPage.java:104)
> at com.mycompany.ui.BasePage.<init>(BasePage.java:27)
> at com.mycompany.ui.MasterPage.<init>(MasterPage.java:41)
> at com.mycompany.ui.MasterPage.<init>(MasterPage.java:36)
> at com.mycompany.ui.MasterPage.<init>(MasterPage.java:31)
> at com.mycompany.ui.HomePage.<init>(HomePage.java:9)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:174)
> at
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:67)
> 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:96)
> at
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:246)
> 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.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> 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.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)
> Complete stack:
> org.apache.wicket.WicketRuntimeException: Can't instantiate page using
> constructor 'public com.mycompany.ui.HomePage()'. 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:67)
> 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:96)
> at
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:246)
> 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)
> java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:174)
> at
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:67)
> 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:96)
> at
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:246)
> 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)
> 
> 
> 
> --
> View this message in context: http://apache-wicket.1842946.n4.nabble.com/NullPointerException-in-Page-constructor-tp4657502p4657517.html
> Sent from the Users forum mailing list archive at Nabble.com.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: NullPointerException in Page constructor

Posted by Martin Grigorov <mg...@apache.org>.
Read
https://cwiki.apache.org/confluence/display/WICKET/Page+Storage#PageStorage-IPageManager


On Tue, Mar 26, 2013 at 5:55 PM, jchappelle <jc...@4redi.com> wrote:

> Thanks for the answer Martin.
>
> Would you suggest I extend AbstractPageManager and apply that change for
> now? If so how to you install a custom page manager?
>
>
>
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/NullPointerException-in-Page-constructor-tp4657502p4657525.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>


-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>

Re: NullPointerException in Page constructor

Posted by jchappelle <jc...@4redi.com>.
Thanks for the answer Martin.

Would you suggest I extend AbstractPageManager and apply that change for
now? If so how to you install a custom page manager?




--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/NullPointerException-in-Page-constructor-tp4657502p4657525.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: NullPointerException in Page constructor

Posted by Martin Grigorov <mg...@apache.org>.
Hi,


On Tue, Mar 26, 2013 at 4:04 PM, jchappelle <jc...@4redi.com> wrote:

> Sure thing. Obviously the last two methods are getting in to my code but
> this
> will let you see how it gets there.
>
>
> Message: Can't instantiate page using constructor 'public
> com.mycompany.ui.HomePage()'. Might be it doesn't exist, may be it is not
> visible (public).
> Root cause:
> java.lang.NullPointerException
> at
> com.mycompany.ui.MasterPage.isProtectedComponentAction(MasterPage.java:58)
> at
>
> com.mycompany.ui.AbstractRiskAuthorizationStrategy.isActionAuthorized(AbstractRiskAuthorizationStrategy.java:39)
> at org.apache.wicket.Component.isActionAuthorized(Component.java:2037)
> at org.apache.wicket.Component.isEnableAllowed(Component.java:2047)
> at org.apache.wicket.Component.isEnabledInHierarchy(Component.java:4420)
>

^^^^^^^
This is the new code that causes you troubles.
Since several versions a component/behavior wont be considered stateful if
it is not rendered (i.e. invisible) or it has no callback (i.e. disabled).



> at org.apache.wicket.Component.isStateless(Component.java:2082)
> at org.apache.wicket.Page.isPageStateless(Page.java:485)
>

Your problem may get solved in 6.8.0 after applying the proposed change at
https://issues.apache.org/jira/browse/WICKET-5083
I.e. the page statelessness wont be checked that soon.


> at
>
> org.apache.wicket.page.AbstractPageManager.touchPage(AbstractPageManager.java:123)
> at
>
> org.apache.wicket.page.PageManagerDecorator.touchPage(PageManagerDecorator.java:56)
> at
>
> org.apache.wicket.page.PageAccessSynchronizer$2.touchPage(PageAccessSynchronizer.java:273)
> at org.apache.wicket.Page.dirty(Page.java:324)
> at org.apache.wicket.markup.html.WebPage.dirty(WebPage.java:321)
> at org.apache.wicket.Page.init(Page.java:740)
> at org.apache.wicket.Page.<init>(Page.java:215)
> at org.apache.wicket.Page.<init>(Page.java:194)
> at org.apache.wicket.markup.html.WebPage.<init>(WebPage.java:104)
> at com.mycompany.ui.BasePage.<init>(BasePage.java:27)
> at com.mycompany.ui.MasterPage.<init>(MasterPage.java:41)
> at com.mycompany.ui.MasterPage.<init>(MasterPage.java:36)
> at com.mycompany.ui.MasterPage.<init>(MasterPage.java:31)
> at com.mycompany.ui.HomePage.<init>(HomePage.java:9)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
>
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:174)
> at
>
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:67)
> 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:96)
> at
>
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:246)
> 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.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> at
>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> 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.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)
> Complete stack:
> org.apache.wicket.WicketRuntimeException: Can't instantiate page using
> constructor 'public com.mycompany.ui.HomePage()'. 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:67)
> 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:96)
> at
>
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:246)
> 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)
> java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
>
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
>
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:174)
> at
>
> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:67)
> 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:96)
> at
>
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:246)
> 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)
>
>
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/NullPointerException-in-Page-constructor-tp4657502p4657517.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>


-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>

Re: NullPointerException in Page constructor

Posted by jchappelle <jc...@4redi.com>.
Sure thing. Obviously the last two methods are getting in to my code but this
will let you see how it gets there.


Message: Can't instantiate page using constructor 'public
com.mycompany.ui.HomePage()'. Might be it doesn't exist, may be it is not
visible (public).
Root cause:
java.lang.NullPointerException
at
com.mycompany.ui.MasterPage.isProtectedComponentAction(MasterPage.java:58)
at
com.mycompany.ui.AbstractRiskAuthorizationStrategy.isActionAuthorized(AbstractRiskAuthorizationStrategy.java:39)
at org.apache.wicket.Component.isActionAuthorized(Component.java:2037)
at org.apache.wicket.Component.isEnableAllowed(Component.java:2047)
at org.apache.wicket.Component.isEnabledInHierarchy(Component.java:4420)
at org.apache.wicket.Component.isStateless(Component.java:2082)
at org.apache.wicket.Page.isPageStateless(Page.java:485)
at
org.apache.wicket.page.AbstractPageManager.touchPage(AbstractPageManager.java:123)
at
org.apache.wicket.page.PageManagerDecorator.touchPage(PageManagerDecorator.java:56)
at
org.apache.wicket.page.PageAccessSynchronizer$2.touchPage(PageAccessSynchronizer.java:273)
at org.apache.wicket.Page.dirty(Page.java:324)
at org.apache.wicket.markup.html.WebPage.dirty(WebPage.java:321)
at org.apache.wicket.Page.init(Page.java:740)
at org.apache.wicket.Page.<init>(Page.java:215)
at org.apache.wicket.Page.<init>(Page.java:194)
at org.apache.wicket.markup.html.WebPage.<init>(WebPage.java:104)
at com.mycompany.ui.BasePage.<init>(BasePage.java:27)
at com.mycompany.ui.MasterPage.<init>(MasterPage.java:41)
at com.mycompany.ui.MasterPage.<init>(MasterPage.java:36)
at com.mycompany.ui.MasterPage.<init>(MasterPage.java:31)
at com.mycompany.ui.HomePage.<init>(HomePage.java:9)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:174)
at
org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:67)
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:96)
at
org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:246)
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.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
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.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)
Complete stack:
org.apache.wicket.WicketRuntimeException: Can't instantiate page using
constructor 'public com.mycompany.ui.HomePage()'. 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:67)
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:96)
at
org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:246)
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)
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:174)
at
org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:67)
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:96)
at
org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:246)
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)



--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/NullPointerException-in-Page-constructor-tp4657502p4657517.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: NullPointerException in Page constructor

Posted by Sven Meier <sv...@meiers.net>.
Hi Josh,

a stacktrace would help to identify the problem.

Sven

On 03/26/2013 02:51 AM, jchappelle wrote:
> We have just upgraded from wicket 1.5.4 to 1.5.10 and we are getting a
> NullPointerException in the constructor of all the pages. It is happening
> because our AuthorizationStrategy.isActionAuthorized calls a method on the
> on our BasePage class. A NullPointerException occurrs in that method because
> the constructor of our BasePage has not completed.
>
> This did not occur in 1.5.4 so something must have changed between 1.5.4 and
> 1.5.10 to cause the AuthorizationStrategy.isActionAuthorized method to be
> called in the constructor of Component. I'm guessing this may be related to
> a security fix?
>
> My question is this. What is the best way to handle this? I tried moving the
> code in the constructor of our BasePage to the onInitialize method of our
> BasePage but that does not fix the issue. Any suggestions?
>
> Thanks,
>
> Josh
>
>
>
> --
> View this message in context: http://apache-wicket.1842946.n4.nabble.com/NullPointerException-in-Page-constructor-tp4657502.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org