You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by al...@apache.org on 2011/11/11 16:33:58 UTC
svn commit: r1200919 -
/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java
Author: allee8285
Date: Fri Nov 11 15:33:58 2011
New Revision: 1200919
URL: http://svn.apache.org/viewvc?rev=1200919&view=rev
Log:
OPENJPA-2073 Tolerate conf exception for no data source configuration so that live db2 connection is not required for MappingTool invocation.
Modified:
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java?rev=1200919&r1=1200918&r2=1200919&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java Fri Nov 11 15:33:58 2011
@@ -55,6 +55,7 @@ import org.apache.openjpa.meta.JavaTypes
import org.apache.openjpa.util.OpenJPAException;
import org.apache.openjpa.util.StoreException;
import org.apache.openjpa.util.UnsupportedException;
+import org.apache.openjpa.util.UserException;
import serp.util.Strings;
@@ -1107,12 +1108,18 @@ public class DB2Dictionary
try {
String str = "SELECT CURRENT SCHEMA FROM " + SYSDUMMY;
conn = getConnection();
- stmnt = conn.createStatement();
- rs = stmnt.executeQuery(str);
- if (rs.next()) {
- String currSchema = rs.getString(1);
- if (currSchema != null) {
- setDefaultSchemaName(currSchema.trim());
+ if (conn != null) {
+ stmnt = conn.createStatement();
+ rs = stmnt.executeQuery(str);
+ if (rs.next()) {
+ String currSchema = rs.getString(1);
+ if (currSchema != null) {
+ setDefaultSchemaName(currSchema.trim());
+ }
+ }
+ } else {
+ if (log.isTraceEnabled()) {
+ log.trace(_loc.get("can_not_get_current_schema", "Unable to obtain a datasource"));
}
}
} catch (SQLException e) {
@@ -1127,7 +1134,6 @@ public class DB2Dictionary
// ignore
}
}
-
if (stmnt != null) {
try {
stmnt.close();
@@ -1155,22 +1161,25 @@ public class DB2Dictionary
* In practice this method is only called by getDefaultSchemaName which in turn is only used by the schema tool.
*
* @throws SQLException If neither datasource is available.
- * @return A connection which may be used to obtain the default schema name. Callers do not need to check for null.
+ * @return A connection which may be used to obtain the default schema name.
*/
private Connection getConnection() throws SQLException {
- // try to obtain a connection from the primary datasource
- DataSource ds = conf.getDataSource(null);
-
- if(ds == null) {
- // use datasource 2 if available
- ds = conf.getDataSource2(null);
+ DataSource ds = null;
+ try {
+ // try to obtain a connection from the primary datasource
+ ds = conf.getDataSource(null);
+ } catch (UserException uex) {
+ }
+ if (ds==null) {
+ try {
+ // use datasource 2 if available
+ ds = conf.getDataSource2(null);
+ } catch (UserException uex2) {
+ }
}
-
if (ds != null) {
return ds.getConnection();
}
-
- // throw
- throw new SQLException("Unable to obtain a datasource");
+ return null;
}
}