seeing if a component is visible or not in the toString() impl is pretty
nice to have
I think you should make your isVisible() a bit more safe.
What if you debug log your self a bit more about this ? and you use it in a
listview or something
then it can also be removed from the page.
Or if you use it in a panel that wants to know upfront stuff from your
component
(and the panel itself isn't added yet to a parent)
johan
On 6/6/07, Nili Adoram <[EMAIL PROTECTED]> wrote:
I come across a very puzzling behavior in wicket-1.2.2.
I add a component to its container when the page is initialized, BEFORE
it is rendered and before page model finished to initialize.
if log4j is configured to enable wicket debug, the container toString()
is called.
This method invoked isVisible() of the container.
I have overriden isVisible(), to query the page model before deciding
whether the component is actually visible.
I assumed this method is called when the component is rendered, and by
that time the model is completely initialized.
However, since it was called before component rendering, my code failed
and the page failed to be created.
My question is:
1. Why isn't toString() of Component a safe method ?
2. Why does it call isVisible before page is rendered?
Thanks
Nili
java.lang.NullPointerException
at
com.qlusters.qrm.plugins.provision.web.ProvisionWebUtils.isVeDeleted(
ProvisionWebUtils.java:374)
at
com.qlusters.qrm.plugins.provision.web.ProvisioningRequestSummaryForm$15.isVisible
(ProvisioningRequestSummaryForm.java:405)
at wicket.Component.toString(Component.java:2176)
at wicket.MarkupContainer.toString(MarkupContainer.java:685)
at wicket.MarkupContainer.toString(MarkupContainer.java:673)
at java.lang.String.valueOf(String.java:2615)
at java.lang.StringBuffer.append(StringBuffer.java:220)
at wicket.MarkupContainer.add(MarkupContainer.java:149)
at
com.qlusters.qrm.plugins.provision.web.ProvisioningRequestSummaryForm.addChangeIndication
(ProvisioningRequestSummaryForm.java:453)
at
com.qlusters.qrm.plugins.provision.web.ProvisioningRequestSummaryForm.init
(ProvisioningRequestSummaryForm.java:47)
at
com.qlusters.qrm.plugins.provision.web.ProvisioningRequestSummary.doView(
ProvisioningRequestSummary.java:50)
at
com.qlusters.qrm.web.wicket.WebPageFactory.decorate(WebPageFactory.java
:84)
at
com.qlusters.qrm.web.wicket.WebPageFactory.newPage(WebPageFactory.java:53)
at
wicket.request.target.component.BookmarkablePageRequestTarget.newPage(
BookmarkablePageRequestTarget.java:271)
at
wicket.request.target.component.BookmarkablePageRequestTarget.getPage(
BookmarkablePageRequestTarget.java:286)
at
wicket.request.target.component.BookmarkablePageRequestTarget.processEvents
(BookmarkablePageRequestTarget.java:205)
at
wicket.request.compound.DefaultEventProcessorStrategy.processEvents(
DefaultEventProcessorStrategy.java:65)
at
wicket.request.compound.AbstractCompoundRequestCycleProcessor.processEvents
(AbstractCompoundRequestCycleProcessor.java:57)
at
wicket.RequestCycle.doProcessEventsAndRespond(RequestCycle.java:852)
at
wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:885)
at wicket.RequestCycle.step(RequestCycle.java:966)
at wicket.RequestCycle.steps(RequestCycle.java:1040)
at wicket.RequestCycle.request(RequestCycle.java:454)
at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java
:216)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:188)
at
com.qlusters.qrm.server.api.objects.transactions.TransactionFilter.doFilter
(TransactionFilter.java:135)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:210)
at
org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:174)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(
AuthenticatorBase.java:433)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
at
org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java
:151)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:665)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:528)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java:81)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:595)
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user