You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2008/06/02 20:45:15 UTC

svn commit: r662514 - /geronimo/server/trunk/plugins/connector/geronimo-connector/src/main/java/org/apache/geronimo/connector/DatabaseInitializationGBean.java

Author: djencks
Date: Mon Jun  2 11:45:15 2008
New Revision: 662514

URL: http://svn.apache.org/viewvc?rev=662514&view=rev
Log:
GERONIMO-4092 DBInitializationGBean more resistant to missing tables

Modified:
    geronimo/server/trunk/plugins/connector/geronimo-connector/src/main/java/org/apache/geronimo/connector/DatabaseInitializationGBean.java

Modified: geronimo/server/trunk/plugins/connector/geronimo-connector/src/main/java/org/apache/geronimo/connector/DatabaseInitializationGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/connector/geronimo-connector/src/main/java/org/apache/geronimo/connector/DatabaseInitializationGBean.java?rev=662514&r1=662513&r2=662514&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/connector/geronimo-connector/src/main/java/org/apache/geronimo/connector/DatabaseInitializationGBean.java (original)
+++ geronimo/server/trunk/plugins/connector/geronimo-connector/src/main/java/org/apache/geronimo/connector/DatabaseInitializationGBean.java Mon Jun  2 11:45:15 2008
@@ -29,12 +29,12 @@
 import javax.resource.ResourceException;
 import javax.sql.DataSource;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
-import org.apache.geronimo.naming.ResourceSource;
 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.naming.ResourceSource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @version $Rev$ $Date$
@@ -52,16 +52,21 @@
                 boolean pass = true;
                 // SQL statement in testSQL can be used to determine if the sql script in path attribute should be executed.
                 // This attribute can be left blank or skipped altogether.
-                if ( testSQL != null && !testSQL.trim().equals("") ) {
-                    ResultSet rs = s.executeQuery(testSQL);
-                    // passes sql test when there are one or more elements
-                    while ( rs.next() ) {
-                        pass = false;
-                        break;
+                if (testSQL != null && !testSQL.trim().equals("")) {
+                    ResultSet rs = null;
+                    try {
+                        rs = s.executeQuery(testSQL);
+                        // passes sql test when there are one or more elements
+                        pass = !rs.next();
+                    } catch (SQLException e) {
+                        log.info("Exception running test query, executing script: " + e.getMessage());
+                    }
+                    if (rs != null) {
+                        rs.close();
                     }
                 }
 
-                if ( pass ) {
+                if (pass) {
                     //script needs to be run
                     log.debug("Executing script: " + path);
                     URL sourceURL = classLoader.getResource(path);
@@ -70,11 +75,11 @@
                     try {
                         String line;
                         StringBuffer buf = new StringBuffer();
-                        while ( (line = r.readLine()) != null ) {
+                        while ((line = r.readLine()) != null) {
                             line = line.trim();
-                            if ( !line.startsWith("--") && line.length() > 0 ) {
+                            if (!line.startsWith("--") && line.length() > 0) {
                                 buf.append(line).append(" ");
-                                if ( line.endsWith(";") ) {
+                                if (line.endsWith(";")) {
                                     int size = buf.length();
                                     buf.delete(size - 2, size - 1);
                                     String sql = buf.toString();
@@ -84,19 +89,18 @@
                             }
                         }
                     }
-                    catch ( Exception ex ) {
+                    catch (Exception ex) {
                         log.error(ex.getMessage());
                     }
                     finally {
                         r.close();
                     }
-                }
-                else {
+                } else {
                     //script need not be run
                     log.debug("Script did not run");
                 }
             }
-            catch ( SQLException e ) {
+            catch (SQLException e) {
                 log.error(e.getMessage());
             }
             finally {