Read and respond to this message at: https://sourceforge.net/forum/message.php?msg_id=3108151 By: theo2005
Hi! I've got a NullPointerException in my interceptor class, but I could find the reason why. The error log entry: 2005-04-19 14:52:06 StandardWrapperValve[control]: Servlet.service() for servlet control threw exception java.lang.NullPointerException at interceptors.ctoDelete2HistBackInterceptor.preDelete(ctoDelete2HistBackInter ceptor.java:32) at org.dbforms.event.DbEventInterceptorSupport.preDelete(DbEventInterceptorSupp ort.java:188) at org.dbforms.config.Table.processInterceptors(Table.java:1991) at org.dbforms.event.datalist.DeleteEvent.processEvent(DeleteEvent.java:134) at org.dbforms.servlets.Controller.process(Controller.java:309) at org.dbforms.servlets.Controller.doPost(Controller.java:107) at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:157) at org.dbforms.util.external.SetCharacterEncodingFilter.doFilter(SetCharacterEn codingFilter.java:190) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext Valve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:104) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase .java:540) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137 ) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117 ) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne ction(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav a:683) at java.lang.Thread.run(Thread.java:534) The interceptor class: package interceptors; import org.dbforms.config.DbFormsConfig; import org.dbforms.config.FieldValue; import org.dbforms.config.FieldValues; import org.dbforms.config.Table; import org.dbforms.config.ValidationException; import org.dbforms.event.DbEventInterceptorSupport; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.http.HttpServletRequest; public class ctoDelete2HistBackInterceptor extends DbEventInterceptorSupport { public int preDelete(HttpServletRequest request, Table table, FieldValues fieldValues, DbFormsConfig config, Connection con) throws ValidationException { if (fieldValues != null) { String strDocID = ""; String strHistID = ""; int Row = 0; //Here I get my java.lang.NullPointerException: strHistID = (String) fieldValues.get("id").getFieldValue(); strDocID = (String) fieldValues.get("doc_id").getFieldValue(); //Debug: //strDocID = "537"; //strHistID = "1"; if ((strDocID != null) && (strHistID != "")) { String backupDocQuery = "INSERT INTO cto_doc_versions (cto_doc_versions.name, cto_doc_versions.doc_id, " + "cto_doc_versions.xdt_file, cto_doc_versions.xdt_file_name, cto_doc_versions.tsl_file, " + "cto_doc_versions.tsl_file_name, cto_doc_versions.last_edit_by, cto_doc_versions.last_edit_time) " + "SELECT cto_docs.name, cto_docs.id, cto_docs.xdt_file, cto_docs.xdt_file_name, cto_docs.tsl_file, " + "cto_docs.tsl_file_name, cto_docs.last_edit_by, cto_docs.last_edit_time " + "FROM cto_docs WHERE cto_docs.id = " + strDocID + ";"; String activateDocQuery = "UPDATE cto_docs, cto_doc_versions SET " + "cto_docs.name = cto_doc_versions.name, cto_docs.xdt_file = cto_doc_versions.xdt_file, " + "cto_docs.xdt_file_name = cto_doc_versions.xdt_file_name, cto_docs.tsl_file = cto_doc_versions.tsl_file, " + "cto_docs.tsl_file_name = cto_doc_versions.tsl_file_name, cto_docs.last_edit_by = cto_doc_versions.last_edit_by, " + "cto_docs.last_edit_time = cto_doc_versions.last_edit_time " + "WHERE cto_doc_versions.id = " + strHistID + " AND cto_doc_versions.doc_id = cto_docs.id;"; try { Statement stmt = con.createStatement(); Row = stmt.executeUpdate(backupDocQuery); Row = stmt.executeUpdate(activateDocQuery); stmt.close(); } catch (SQLException e) { System.out.println("Datenbankfehler: " + e.getMessage()); return IGNORE_OPERATION; } } } return GRANT_OPERATION; } } My table definition: <table name="cto_doc_versions" defaultVisibleFields="id"> <field name="id" fieldType="int" size="11" isKey="true" autoInc="true" /> <field name="name" fieldType="varchar" size="50" /> <field name="doc_id" fieldType="int" size="11" isKey="true" /> <field name="xdt_file" fieldType="blob" size="16277215" /> <field name="xdt_file_name" fieldType="varchar" size="255" /> <field name="tsl_file" fieldType="blob" size="16277215" /> <field name="tsl_file_name" fieldType="varchar" size="255" /> <field name="last_edit_by" fieldType="int" size="11" /> <field name="last_edit_time" fieldType="timestamp" size="14" /> <!-- add "granted-privileges" element for security constraints --> <interceptor className = "interceptors.ctoDelete2HistBackInterceptor"/> </table> Could anybody give me a hint, where the problem is? Thanks in advance + regards Theo ______________________________________________________________________ You are receiving this email because you elected to monitor this forum. To stop monitoring this forum, login to SourceForge.net and visit: https://sourceforge.net/forum/unmonitor.php?forum_id=55830 ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ DbForms Mailing List http://www.wap-force.net/dbforms