2012-03-15 56 views
2

我有一個java web應用程序,我從代碼中刪除了一個函數,但此函數寫入的數據庫條目仍在寫入數據庫。java數據庫功能被刪除 - 仍在執行

在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

您是否確定實際運行的代碼是在沒有刪除代碼的情況下編譯的? – cdeszaq 2012-03-15 20:00:56

+1

作爲一般性評論:您不應該對連接字符串使用SQL,這是對SQL注入攻擊的邀請。改用'PreparedStatement'。 – nwinkler 2012-03-15 20:01:59

+0

cdeszaq - 不,我不知道。我知道應用程序的部署就像我們經常部署的一樣。我假設它是在它被部署之前構建的,只是因爲我們自動構建。 – Leslie 2012-03-15 21:07:08

回答

0

幾件事情嘗試:

  • 請確保您已重新部署應用程序並已經重新啓動Tomcat的。檢查有問題的已部署類的時間戳。
  • 清潔Tomcat的tmpwork目錄
  • 打開使用反編譯器,看看取出的代碼是否仍然在那裏部署的Java類。
  • 向註釋掉的方法和調用它的方法添加日誌記錄(或System.out.println)語句。查看重新部署更改後是否打印其中一個或兩個。
+0

非常感謝,它看起來不像是新的類被部署了,它仍然有舊的日期。我們今晚要重新部署,希望能修復壞的魔咒! – Leslie 2012-03-15 22:01:25