删除了java数据库函数 - 仍在执行

时间:2012-03-15 19:58:10

标签: java tomcat database-connection

我有一个java Web应用程序,我从代码中删除了一个函数,但此函数写入的数据库条目仍在写入数据库。

在IssueWarrant函数中,有一个已注释掉的insertWarrantFee调用。

private void issueWarrant(String CasePrefix, String CaseNumber, String HearingType, String Suspend)
    {
        int i = 0, intDivision = 0, pos = 0;
        String SummSeq = getSummSeq(CasePrefix, CaseNumber);
        String Charges = getCharges(CasePrefix, CaseNumber, HearingType);
        boolean isVacated = false, isHearingFound = false;
        NextBWNumber warrNbr = new NextBWNumber();
        String WarrantNumber = warrNbr.getNextBWNumber();
        String warrStatus = warrNbr.getNextBWNStatus();
        String HearingDesc = "", Division = "";
        isVacated = getVacatedStatus(CasePrefix, CaseNumber, HearingType);
        isHearingFound = getHearingStatus (CasePrefix, CaseNumber, HearingType);

        HearingDesc = getFormatToday() + "  " + getHearingDesc(HearingType);
        if (HearingDesc.length() > 30)
        {
            HearingDesc = HearingDesc.substring(0,30);
        }
        Division = getHearingJudge(CasePrefix,CaseNumber,HearingType);
        intDivision = Integer.parseInt(Division);
        if (intDivision < 10)
        { Division = "0" + Division; }

        Statement localstmt = null;
        String localqueryString;

        localqueryString = "INSERT INTO " + library7 + "CMPBWPND" +
            " (CASPRE, CASNUM, DEFSEQ, CHGSEQ, SUMSEQ, STSCOD, STSDAT," +
            " STATUT, CHGABV, BWNBR, JUDCOD, PRVFLG, CT2FLG, DIVISN, BNDAMT," +
            " BTYPE, CMNT, CUSER, TUSER, LUPDAT, SCRDAT, STATSDAT, SUMCRDAT, LUPDATE )" +
            " VALUES ('" + CasePrefix + "', " + CaseNumber + ", 1, " + Charges.substring(i, i + 1) +
            ", " + SummSeq + ", 9, " + getShortDate() + ", 'RCP 12-A TA', 'WARRANT', '" +
            WarrantNumber + "', " + intDivision + ", 'N', 1, '" + Division + "', " +
            BondAmt + ", '" + BondType +  "', '" + HearingDesc + "', 'TAAD', 'TAAD', " +
            getShortDate() + ", " + getShortDate() + ", " + getLongDate() + ", " + getLongDate() +
            ", " + getLongDate() + ")"; 

        try
        {
            if (!isVacated && isHearingFound)
            {
                localstmt = conn.createStatement();
                localstmt.executeUpdate(localqueryString);
                localstmt.close();
                StatusMsg = "Client No Show-WI";
            }
            if (isVacated)
            {
                StatusMsg = "Client Vacated Case";
            }
            if (!isHearingFound)
            {
                StatusMsg = "Client Hearing Missing";
            }

        } catch (SQLException e)
            {
                System.out.println("IssueWarr - Error in IssueWarrant");
                e.printStackTrace();
                ReturnInfo = "Issuing Warrants Failed.";
                success = false;
            }finally
            {
                try
                {
                    if (!localstmt.isClosed())
                    {
                        localstmt.close();
                    }                   
                } catch (SQLException sql2)
                    {
                        System.out.println("Error trying to close connections. Exception: " +  sql2.getMessage());
                    }
            }

        **//insertWarrantFee(CasePrefix, CaseNumber, SummSeq, WarrantNumber);**     
        updateHearingRecord(CasePrefix, CaseNumber, HearingType, Charges.substring(i, i + 1), Suspend);

        for ( i = 1; i < Charges.length(); i++ )
        {
            insertBWPTFRecord(CasePrefix, CaseNumber, SummSeq, Charges.substring(i, i + 1));
        }
        if (!success)
        {
            StatusMsg = "Client Iss. Warrant Failure";
        }
    }

以下是insertWarrantFee在注释掉之前调用的代码:

private void insertWarrantFee(String CasePrefix, String CaseNumber, String SummSeq, String WarrantNumber)
    {
        Statement localstmt = null;
        String localqueryString;
        ResultSet localrSet = null;
        String feeAmt = null;

        localqueryString = "SELECT AUTO$$ FROM " + library3 + "CMPDKTTP WHERE DKTTYP = 'W'";
        try
        {
            localstmt = conn.createStatement();
            localrSet = localstmt.executeQuery(localqueryString);         
            while (localrSet.next())
            {
                feeAmt = localrSet.getString("AUTO$$");
            }
            localstmt.close();
            localrSet.close();

        } catch (SQLException e)
            {
                System.out.println("IssueWarr - Error in Insert Warrant Fee SQL1");
                e.printStackTrace();
                ReturnInfo = "Issuing Warrants Failed.";
                success = false;
            }finally
            {
                try
                {
                    if (!localstmt.isClosed())
                    {
                        localstmt.close();
                    }                   
                } catch (SQLException sql2)
                    {
                        System.out.println("Error trying to close connections. Exception: " +  sql2.getMessage());
                    }
            }   

        localqueryString = "INSERT INTO " + library7 + "CMPBWTRN"
            + " (CASPRE, CASNUM, DEFSEQ, SUMSEQ, BWNBR, FEEAMT, DKTTYP, TUSER, LUPDAT)" 
            + " VALUES ('" + CasePrefix + "', " + CaseNumber + ", 1, " + SummSeq + ", '" + WarrantNumber
            + "', " + feeAmt + ", 'W', 'TAAD', " + getShortDate() + ")";                
        try
        {
            localstmt = conn.createStatement();
            localstmt.executeUpdate(localqueryString);
            localstmt.close();

        } catch (SQLException e)
            {
                System.out.println("IssueWarr - Insert Warrant Fee SQL2");
                e.printStackTrace();
                ReturnInfo = "Issuing Warrants Failed.";
                success = false;
            }finally
            {
                try
                {
                    if (!localstmt.isClosed())
                    {
                        localstmt.close();
                    }                   
                } catch (SQLException sql2)
                    {
                        System.out.println("Error trying to close connections. Exception: " +  sql2.getMessage());
                    }
            }
    }

因此即使注释掉insertWarrantFee的行被注释掉,记录仍然被插入到CMPBWTRN中。

任何想法如何发生这种情况?开发人员表示它可能是一个tomcat连接缓存问题?除了魔法代码之外的任何其他建议吗?

谢谢! 莱斯利

1 个答案:

答案 0 :(得分:0)

要尝试的几件事情:

  • 确保您已重新部署该应用程序并重新启动了Tomcat。检查所讨论的已部署类的时间戳。
  • 清理Tomcat的tmpwork目录
  • 使用反编译器打开已部署的Java类,以查看删除的代码是否仍在其中。
  • 将日志记录(或System.out.println)语句添加到已注释掉的方法以及调用它的方法中。查看重新部署更改后是否打印一个或两个。