Re: [Wicket-user] DataTable and IDataProvider question

2006-03-24 Thread Igor Vaynberg
how did it crash? what was the output?another thing is cant you try this before the datatable is even rendering? why do the check so late in the game?-IgorOn 3/24/06, 
Frank Silbermann [EMAIL PROTECTED] wrote:



















I'm using 1.2 B2



-Original Message-

From:
[EMAIL PROTECTED] [mailto:
[EMAIL PROTECTED]]
On Behalf Of Igor Vaynberg
Sent: Friday, March 24, 2006 10:41
AM
To:
wicket-user@lists.sourceforge.net
Subject: Re: [Wicket-user]
DataTable and IDataProvider question



request cycle. are you using 1.2 head?


-Igor





On 3/24/06, Frank Silbermann 
[EMAIL PROTECTED] 
wrote:





I did that, and it
crashed. Who is supposed to catch the RestartResponseException to restart
the response? 







-Original Message-
From: [EMAIL PROTECTED]

[mailto:[EMAIL PROTECTED]]
On Behalf Of Igor Vaynberg
Sent: Friday, March 24, 2006 10:13
AM
To: wicket-user@lists.sourceforge.net
Subject: Re: [Wicket-user]
DataTable and IDataProvider question



try throwing RestartResponseException.

-Igor



On 3/24/06, Frank
Silbermann 
[EMAIL PROTECTED]  wrote:





I am working with a database
that is kind of strange. Someone provides a new table with each day's
data. Thus, the database can cause an SQLException as a normal result for
the use case where the user requests data that hasn't been produced yet.



When my Iterator
IDataprovider.iterate(int first, int count) method is called and I go to
the database, I would like to handle the SQLException to call void
Component.setResponsePage( Class.responsePage) to tell the user what has
happened, passing in PageParameters to enable the user to continue.



It seems that DataTable
does not like me jumping out of the iterate(first,count) method
like that. It tries to set the ResponsePage to the Wicket error page,
which causes a serious failure saying that one cannot set the ResponsePage twice.



What are my options for
solving this problem?



Is it simply a matter of
making my iterate(first,count) return an empty iterator to satisfy the
DataTable caller before my setResponsePage() can take effect?




Here is the relevant section
from the Tomcat logfile:



Mar 24, 2006 8:11:03 AM
org.apache.catalina.core.ApplicationContext log

INFO:
org.apache.webapp.balancer.BalancerFilter: init(): ruleChain:
[org.apache.webapp.balancer.RuleChain:
[org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News /
Redirect URL: http://www.cnn.com],
[org.apache.webapp.balancer.rules.RequestParameterRule: Target param name:
paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com],
[org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]



Mar 24, 2006 8:11:03 AM org.apache.catalina.core.ApplicationContext
log

INFO: ContextListener:
contextInitialized()

Mar 24, 2006 8:11:03 AM
org.apache.catalina.core.ApplicationContext log

INFO: SessionListener:
contextInitialized()

Mar 24, 2006 8:11:10 AM
org.apache.catalina.core.ApplicationContext log

INFO: ContextListener:
contextInitialized()

Mar 24, 2006 8:11:10 AM
org.apache.catalina.core.ApplicationContext log

INFO: SessionListener:
contextInitialized()

Mar 24, 2006 8:11:20 AM
org.apache.catalina.core.StandardWrapperValve invoke

SEVERE: Servlet.service()
for servlet MEM_Application threw exception

wicket.WicketRuntimeException:
Internal Error: Could not render error page class
wicket.markup.html.pages.InternalErrorPage


at wicket.request.compound.DefaultExceptionResponseStrategy.respond(DefaultExceptionResponseStrategy.java:106)


at
wicket.request.compound.AbstractCompoundRequestCycleProcessor.respond(AbstractCompoundRequestCycleProcessor.java:76)


at wicket.RequestCycle.step(RequestCycle.java:971)


at wicket.RequestCycle.steps(RequestCycle.java:1005)


at wicket.RequestCycle.request(RequestCycle.java:451)


at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:212)


at wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:250)


at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)


at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)


at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)


at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)


at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)


at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)


at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)


at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)


at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)


at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)


at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection

RE: [Wicket-user] DataTable and IDataProvider question

2006-03-24 Thread Frank Silbermann








Are we not expected to go to the database
when the iterate(first, count) method is called? Thats when the database tells me (through
an SQLException) that the table hasnt been created yet.



I am beginning to wonder about assumed
invariants that I did not take into consideration in my current design. When the user changes some query
parameters, then the next page refresh should replace the data in the table
based on the new query. Ive
assumed that I can handle this merely by changing the results returned by
IDataprovider.iterate(first, count), but now Im beginning to wonder.



A change in the query changes the result
of IDataProvider.size(). If DataTable
does not deal will with changing data sizes, maybe I have to respond to a
change in SQL query at a higher level  not merely to have the
IDataProvider reflect the changes, but to replace the whole table. What do you think? Anyway, here is the result I got. Do you need the log file? (Or do I just need to back up and
realize that the DataTable is not quite as flexible as Id assumed.)



type Exception report

message 

description The server encountered an
internal error () that prevented it from fulfilling this request.

exception 

wicket.WicketRuntimeException: Internal Error: Could not render error page class wicket.markup.html.pages.InternalErrorPage wicket.request.compound.DefaultExceptionResponseStrategy.respond(DefaultExceptionResponseStrategy.java:106) wicket.request.compound.AbstractCompoundRequestCycleProcessor.respond(AbstractCompoundRequestCycleProcessor.java:76) wicket.RequestCycle.step(RequestCycle.java:971) wicket.RequestCycle.steps(RequestCycle.java:1005) wicket.RequestCycle.request(RequestCycle.java:451) wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:212) wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:250) javax.servlet.http.HttpServlet.service(HttpServlet.java:709) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root
cause is available in the Apache Tomcat/5.5.9 logs.









-Original Message-
From:
[EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Igor Vaynberg
Sent: Friday, March 24, 2006 11:06
AM
To:
wicket-user@lists.sourceforge.net
Subject: Re: [Wicket-user]
DataTable and IDataProvider question



how did it crash? what was the output?

another thing is cant you try this before the datatable is even rendering? why
do the check so late in the game?

-Igor





On 3/24/06, Frank Silbermann [EMAIL PROTECTED]
wrote:





I'm using 1.2 B2







-Original
Message- 
From: [EMAIL PROTECTED]
[mailto:
[EMAIL PROTECTED]] On
Behalf Of Igor Vaynberg





Sent: Friday, March 24, 2006 10:41 AM
To: wicket-user@lists.sourceforge.net
Subject: Re:
[Wicket-user] DataTable and IDataProvider question







request cycle. are you using 1.2 head?


-Igor



On 3/24/06, Frank
Silbermann 
[EMAIL PROTECTED]  wrote:





I did that, and it
crashed. Who is supposed to catch the RestartResponseException to restart
the response? 







-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]
On Behalf Of Igor Vaynberg
Sent: Friday, March 24, 2006 10:13
AM
To: wicket-user@lists.sourceforge.net
Subject: Re: [Wicket-user]
DataTable and IDataProvider question



try throwing RestartResponseException.

-Igor



On 3/24/06, Frank
Silbermann 
[EMAIL PROTECTED]  wrote:





I am working with a
database that is kind of strange. Someone provides a new table with each
day's data. Thus, the database can cause an SQLException as a normal
result for the use case where the user requests data that hasn't been produced
yet.



When my Iterator
IDataprovider.iterate(int first, int count) method is called and I go to
the database, I would like to handle the SQLException to call void
Component.setResponsePage( Class.responsePage) to tell the user what has
happened, passing in PageParameters to enable the user to continue.



It seems that DataTable
does not like me jumping out of the iterate(first,count) method
like that. It tries to set the ResponsePage to the Wicket error page,
which causes a serious failure saying that one cannot set the ResponsePage
twice.



What are my options for
solving this problem?



Is it simply a matter of
making my iterate(first,count) return an empty iterator to satisfy the
DataTable caller before my setResponsePage() can take effect?




Here is the relevant
section from the Tomcat logfile:



Mar 24, 2006 8:11:03 AM
org.apache.catalina.core.ApplicationContext log

INFO:
org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain:
[org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News /
Redirect URL: http://www.cnn.com],
[org.apache.webapp.balancer.rules.RequestParameterRule: Target param name:
paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com],
[org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http

Re: [Wicket-user] DataTable and IDataProvider question

2006-03-24 Thread Igor Vaynberg
it should work just fine for varying sizes. i really dont understand where your problem is.i modified the examples DataTablePage with the following and it worked just fine, not sure what its not working for you:
add(new DefaultDataTable(table, columns, new SortableDataProvider() {   public Iterator iterator(int first, int count)   {throw new RestartResponseException(new GridViewPage());
   }  public int size()   {throw new RestartResponseException(new GridViewPage());   }   public IModel model(Object object)
   {// TODO Auto-generated method stubreturn null;   }  }, 8));-IgorOn 3/24/06, 
Frank Silbermann [EMAIL PROTECTED] wrote:

















Are we not expected to go to the database
when the "iterate(first, count)" method is called? That's when the database tells me (through
an SQLException) that the table hasn't been created yet.



I am beginning to wonder about assumed
invariants that I did not take into consideration in my current design. When the user changes some query
parameters, then the next page refresh should replace the data in the table
based on the new query. I've
assumed that I can handle this merely by changing the results returned by
IDataprovider.iterate(first, count), but now I'm beginning to wonder.



A change in the query changes the result
of IDataProvider.size(). If DataTable
does not deal will with changing data sizes, maybe I have to respond to a
change in SQL query at a higher level – not merely to have the
IDataProvider reflect the changes, but to replace the whole table. What do you think? Anyway, here is the result I got. Do you need the log file? (Or do I just need to back up and
realize that the DataTable is not quite as flexible as I'd assumed.)



type Exception report

message 

description The server encountered an
internal error () that prevented it from fulfilling this request.

exception 

wicket.WicketRuntimeException: Internal Error: Could not render error page class wicket.markup.html.pages.InternalErrorPage
 wicket.request.compound.DefaultExceptionResponseStrategy.respond(DefaultExceptionResponseStrategy.java
:106) wicket.request.compound.AbstractCompoundRequestCycleProcessor.respond
(AbstractCompoundRequestCycleProcessor.java:76) wicket.RequestCycle.step
(RequestCycle.java:971) wicket.RequestCycle.steps(RequestCycle.java
:1005) wicket.RequestCycle.request(RequestCycle.java:451)
 wicket.protocol.http.WicketServlet.doGet(WicketServlet.java
:212) wicket.protocol.http.WicketServlet.doPost(WicketServlet.java
:250) javax.servlet.http.HttpServlet.service(HttpServlet.java
:709) javax.servlet.http.HttpServlet.service(HttpServlet.java
:802)

note The full stack trace of the root
cause is available in the Apache Tomcat/5.5.9 logs.









-Original Message-

From:
[EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]] On Behalf Of 
Igor Vaynberg
Sent: Friday, March 24, 2006 11:06
AM
To:
wicket-user@lists.sourceforge.net
Subject: Re: [Wicket-user]
DataTable and IDataProvider question



how did it crash? what was the output?

another thing is cant you try this before the datatable is even rendering? why
do the check so late in the game?

-Igor





On 3/24/06, Frank Silbermann 
[EMAIL PROTECTED]
wrote:





I'm using 1.2 B2







-Original
Message- 
From: [EMAIL PROTECTED]

[mailto:
[EMAIL PROTECTED]] On
Behalf Of Igor Vaynberg





Sent:
 Friday, March 24, 2006 10:41 AM
To: wicket-user@lists.sourceforge.net

Subject: Re:
[Wicket-user] DataTable and IDataProvider question







request cycle. are you using 1.2 head?


-Igor



On 3/24/06, Frank
Silbermann 
[EMAIL PROTECTED]  wrote:





I did that, and it
crashed. Who is supposed to catch the RestartResponseException to restart
the response? 







-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]
On Behalf Of Igor Vaynberg
Sent: Friday, March 24, 2006 10:13
AM
To: wicket-user@lists.sourceforge.net
Subject: Re: [Wicket-user]
DataTable and IDataProvider question



try throwing RestartResponseException.

-Igor



On 3/24/06, Frank
Silbermann 
[EMAIL PROTECTED]  wrote:





I am working with a
database that is kind of strange. Someone provides a new table with each
day's data. Thus, the database can cause an SQLException as a normal
result for the use case where the user requests data that hasn't been produced
yet.



When my Iterator
IDataprovider.iterate(int first, int count) method is called and I go to
the database, I would like to handle the SQLException to call void
Component.setResponsePage( Class.responsePage) to tell the user what has
happened, passing in PageParameters to enable the user to continue.



It seems that DataTable
does not like me jumping out of the iterate(first,count) method
like that. It tries to set the ResponsePage to the Wicket error page,
which causes a serious failure saying that one cannot set the ResponsePage
twice.



What are my options for
solving this problem?



Is it simply a matter of
making my iterate(first,cou