bpapez      2005/12/06 13:13:21 CET

  Modified files:
    core/src/java/org/jahia/services/database 
                                              ConnectionDispenser.java 
                                              ConnectionWrapper.java 
  Log:
  put code into finally to ensure that connections are really closed
  
  Revision  Changes    Path
  1.7       +10 -4     
jahia/core/src/java/org/jahia/services/database/ConnectionDispenser.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/database/ConnectionDispenser.java.diff?r1=1.6&r2=1.7&f=h
  1.3       +10 -4     
jahia/core/src/java/org/jahia/services/database/ConnectionWrapper.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/database/ConnectionWrapper.java.diff?r1=1.2&r2=1.3&f=h
  
  
  
  Index: ConnectionWrapper.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/database/ConnectionWrapper.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ConnectionWrapper.java    12 Apr 2005 12:36:36 -0000      1.2
  +++ ConnectionWrapper.java    6 Dec 2005 12:13:21 -0000       1.3
  @@ -27,11 +27,17 @@
       public void close() throws SQLException {
       }
       public void realClose() throws SQLException {
  -        for (Iterator ite = cachedStatements.keySet().iterator(); 
ite.hasNext();) {
  -            StatementWrapper eps = 
(StatementWrapper)cachedStatements.get(ite.next());
  -            eps.closeReally();
  +        try {
  +
  +            for (Iterator ite = cachedStatements.keySet().iterator(); ite
  +                    .hasNext();) {
  +                StatementWrapper eps = (StatementWrapper) cachedStatements
  +                        .get(ite.next());
  +                eps.closeReally();
  +            }
  +        } finally {
  +            connection.close();
           }
  -        connection.close();
       }
       public void commit() throws SQLException {connection.commit();}
       public Statement createStatement() throws SQLException {
  
  
  
  Index: ConnectionDispenser.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/database/ConnectionDispenser.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ConnectionDispenser.java  1 Jun 2005 16:47:55 -0000       1.6
  +++ ConnectionDispenser.java  6 Dec 2005 12:13:21 -0000       1.7
  @@ -83,11 +83,16 @@
                   if (!connection.getAutoCommit()) {
                       connection.rollback();
                   }
  -                ((ConnectionWrapper)connection).realClose();
  -                count--;
  -                logger.debug("Connections still active :" + count);
               } catch (SQLException sqle) {
                   logger.error("Error while closing database connection", 
sqle);
  +            } finally {
  +                try {
  +                    ((ConnectionWrapper)connection).realClose();
  +                } catch (SQLException sqle) {
  +                    logger.error("Error while closing database connection", 
sqle);
  +                }
  +                count--;
  +                logger.debug("Connections still active :" + count);          
      
               }
               connection = null;
           }
  @@ -283,8 +288,9 @@
               }
           } catch (SQLException sqle) {
               logger.error("Error while rollbacking database transaction", 
sqle);
  +        } finally {
  +            curConnectionInfo.removeConnection();
           }
  -        curConnectionInfo.removeConnection();
       }
   
       public static void terminateConnection () {
  

Reply via email to