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