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

Reply via email to