serge       01/11/01 07:32:21

  Modified:    src/java/org/apache/james/mailrepository
                        JDBCSpoolRepository.java
  Log:
  Moved closing of connections to finally blocks.
  
  Revision  Changes    Path
  1.5       +38 -15    
jakarta-james/src/java/org/apache/james/mailrepository/JDBCSpoolRepository.java
  
  Index: JDBCSpoolRepository.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-james/src/java/org/apache/james/mailrepository/JDBCSpoolRepository.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JDBCSpoolRepository.java  2001/09/11 04:33:08     1.4
  +++ JDBCSpoolRepository.java  2001/11/01 15:32:21     1.5
  @@ -63,13 +63,15 @@
   
       public synchronized String accept() {
           while (true) {
  +            Connection conn = null;
  +            PreparedStatement listMessages = null;
  +            ResultSet rsListMessages = null;
               try {
  -                //System.err.println("querying db");
  -                Connection conn = getConnection();
  -                PreparedStatement listMessages = 
  +                conn = getConnection();
  +                listMessages =
                       
conn.prepareStatement(sqlQueries.getSqlString("listMessagesSQL", true));
                   listMessages.setString(1, repositoryName);
  -                ResultSet rsListMessages = listMessages.executeQuery();
  +                rsListMessages = listMessages.executeQuery();
   
                   while (rsListMessages.next()) {
                       String message = rsListMessages.getString(1);
  @@ -77,16 +79,27 @@
                       if (lock(message)) {
                           rsListMessages.close();
                           listMessages.close();
  -                        conn.close();
                           return message;
                       }
                   }
                   rsListMessages.close();
                   listMessages.close();
  -                conn.close();
               } catch (Exception me) {
                   me.printStackTrace();
                   throw new RuntimeException("Exception while listing mail: " + 
me.getMessage());
  +            } finally {
  +                try {
  +                    rsListMessages.close();
  +                } catch (Exception e) {
  +                }
  +                try {
  +                    listMessages.close();
  +                } catch (Exception e) {
  +                }
  +                try {
  +                    conn.close();
  +                } catch (Exception e) {
  +                }
               }
               try {
                   wait();
  @@ -98,12 +111,15 @@
       public synchronized String accept(long delay) {
           while (true) {
               long next = 0;
  +            Connection conn = null;
  +            PreparedStatement listMessages = null;
  +            ResultSet rsListMessages = null;
               try {
  -                Connection conn = getConnection();
  -                PreparedStatement listMessages = 
  +                conn = getConnection();
  +                listMessages =
                       
conn.prepareStatement(sqlQueries.getSqlString("listMessagesSQL", true));
                   listMessages.setString(1, repositoryName);
  -                ResultSet rsListMessages = listMessages.executeQuery();
  +                rsListMessages = listMessages.executeQuery();
   
                   while (rsListMessages.next()) {
                       String message = rsListMessages.getString(1);
  @@ -125,18 +141,25 @@
                       }
   
                       if (process && lock(message)) {
  -                        rsListMessages.close();
  -                        listMessages.close();
  -                        conn.close();
                           return message;
                       }
                   }
  -                rsListMessages.close();
  -                listMessages.close();
  -                conn.close();
               } catch (Exception me) {
                   me.printStackTrace();
                   throw new RuntimeException("Exception while listing mail: " + 
me.getMessage());
  +            } finally {
  +                try {
  +                    rsListMessages.close();
  +                } catch (Exception e) {
  +                }
  +                try {
  +                    listMessages.close();
  +                } catch (Exception e) {
  +                }
  +                try {
  +                    conn.close();
  +                } catch (Exception e) {
  +                }
               }
   
               //We did not find any... let's wait for a certain amount of time
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to