From a35c729673ac5355eb813b186e196e35bc640e34 Mon Sep 17 00:00:00 2001 From: "Redhuan D. Oon" Date: Fri, 8 Feb 2008 19:22:18 +0000 Subject: [PATCH] *BF [ 1874419 ] JDBC Statement not close in a finally block *Organize imports --- .../compiere/apps/form/VTreeMaintenance.java | 67 ++++++++++++------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/client/src/org/compiere/apps/form/VTreeMaintenance.java b/client/src/org/compiere/apps/form/VTreeMaintenance.java index 22197e4f0d..ccec256587 100644 --- a/client/src/org/compiere/apps/form/VTreeMaintenance.java +++ b/client/src/org/compiere/apps/form/VTreeMaintenance.java @@ -16,17 +16,43 @@ *****************************************************************************/ package org.compiere.apps.form; -import java.awt.*; -import java.awt.event.*; -import java.beans.*; -import java.sql.*; -import java.util.logging.*; -import javax.swing.*; -import javax.swing.event.*; -import org.compiere.grid.tree.*; -import org.compiere.model.*; -import org.compiere.swing.*; -import org.compiere.util.*; +import java.awt.BorderLayout; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.logging.Level; + +import javax.swing.DefaultListModel; +import javax.swing.JList; +import javax.swing.JScrollPane; +import javax.swing.JSplitPane; +import javax.swing.ListModel; +import javax.swing.ListSelectionModel; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; + +import org.compiere.grid.tree.VTreePanel; +import org.compiere.model.MRole; +import org.compiere.model.MTree; +import org.compiere.model.MTreeNode; +import org.compiere.model.MTree_Node; +import org.compiere.model.MTree_NodeBP; +import org.compiere.model.MTree_NodeMM; +import org.compiere.model.MTree_NodePR; +import org.compiere.swing.CButton; +import org.compiere.swing.CCheckBox; +import org.compiere.swing.CComboBox; +import org.compiere.swing.CLabel; +import org.compiere.swing.CPanel; +import org.compiere.util.CLogger; +import org.compiere.util.DB; +import org.compiere.util.Env; +import org.compiere.util.KeyNamePair; +import org.compiere.util.Msg; /** * Tree Maintenance @@ -207,33 +233,26 @@ public class VTreeMaintenance extends CPanel log.config(sql); // PreparedStatement pstmt = null; + ResultSet rs = null; try { pstmt = DB.prepareStatement (sql, null); - ResultSet rs = pstmt.executeQuery (); + rs = pstmt.executeQuery (); while (rs.next ()) { ListItem item = new ListItem(rs.getInt(1), rs.getString(2), rs.getString(3), "Y".equals(rs.getString(4)), rs.getString(5)); model.addElement(item); } - rs.close (); - pstmt.close (); - pstmt = null; - } + } catch (Exception e) { log.log(Level.SEVERE, sql, e); } - try + finally { - if (pstmt != null) - pstmt.close (); - pstmt = null; - } - catch (Exception e) - { - pstmt = null; + DB.close(rs, pstmt); + rs = null; pstmt = null; } // List log.config("#" + model.getSize());