My nightmare ...Statement parameter 1 not set.

Yes i know that one of the parameters of the rowset is not set.

My page contains more than 10 rowsets and prowiders. And i don't know how to find which is the rowset.... just know that it's "one of them" ...

04:31:53,984 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception

com.sun.rave.web.ui.appbase.ApplicationException: org.apache.jasper.JasperException: java.lang.RuntimeException: java.sql.SQLException: Statement parameter 1 not set.

at com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.cleanup(ViewHandlerImpl.java: 559)

at com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.ja va:290)

at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87 )

at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)

at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)

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

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

at com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:198)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil terChain.java:202)

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

at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java: 96)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil terChain.java:202)

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.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociati onValve.java:175)

at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)

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:10 7)

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

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

at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConn ection(Http11BaseProtocol.java:664)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:5 27)

at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread. java:112)

at java.lang.Thread.run(Thread.java:595)

Caused by: javax.faces.FacesException: org.apache.jasper.JasperException: java.lang.RuntimeException: java.sql.SQLException: Statement parameter 1 not set.

at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:327 )

at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)

at com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.ja va:285)

... 25 more

Caused by: org.apache.jasper.JasperException: java.lang.RuntimeException: java.sql.SQLException: Statement parameter 1 not set.

at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrappe r.java:510)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

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

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

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

at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.jav a:672)

at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispat cher.java:463)

at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher. java:398)

at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.ja va:301)

at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322 )

... 27 more

[4706 byte] By [_3AM_KMETa] at [2007-11-26 20:10:23]
# 1

Hello _3AM_KMET,

Check the cachedRowSets binded to this pageBean DataProviders

and see which criteria column in each rowSet is set to the value "?"

Then in the prerender() method in your pageBean check that this field parameter is set.

This ofcourse if this problem occurs while rendering the page.

Best Regards,

Amr Aman.

sotota at 2007-7-9 23:13:50 > top of Java-index,Development Tools,Java Tools...
# 2

I feel your pain: the least helpful stacktrace I could imagine. Obviously you know you will be able to find the problem with patience but I'd suggest you try and file a bug against the rowset code which ought to give you a reference to the offending code.

Thought: have you tried a rs.execute() ? That might throw a usable stacktrace and in the order you'd expect...

yossariana at 2007-7-9 23:13:51 > top of Java-index,Development Tools,Java Tools...
# 3

I don't think that this is the rihgt way, but i fixed this problem by setting all parameters with "" or 0 values in suspicious data providers in the init method of session bean(this will not be a problem with the logic of the application). You are right that this stacktrace cant help me and that is not te first and will be not the last time i will have problems with this.

Thanks a lot for your posts.

Regards, Petko.

_3AM_KMETa at 2007-7-9 23:13:51 > top of Java-index,Development Tools,Java Tools...