You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by fa...@apache.org on 2008/06/26 21:38:31 UTC
svn commit: r672008 -
/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java
Author: fancy
Date: Thu Jun 26 12:38:30 2008
New Revision: 672008
URL: http://svn.apache.org/viewvc?rev=672008&view=rev
Log:
OPENJPA-644 Handle databaseProductVersion string from newer jcc driver for DB2 ISeries
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=672008&r1=672007&r2=672008&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 Thu Jun 26 12:38:30 2008
@@ -438,18 +438,40 @@
// (Toolbox)DBProdVersion 05.04.0000 V5R4m0
// ISeries DB2 UDB for AS/400
// (Native) V5R4M0
+ // new jcc DBProdVersion QSQ05040 or QSQ06010
if (databaseProductName.indexOf("AS") != -1) {
- String s = databaseProductVersion.substring(databaseProductVersion
- .indexOf('V'));
- s = s.toUpperCase();
-
- StringTokenizer stringtokenizer = new StringTokenizer(s, "VRM"
- , false);
- if (stringtokenizer.countTokens() == 3) {
- String s1 = stringtokenizer.nextToken();
- maj = Integer.parseInt(s1);
- String s2 = stringtokenizer.nextToken();
- min = Integer.parseInt(s2);
+ // default to V5R4
+ maj = 5;
+ min = 4;
+ int index = databaseProductVersion.indexOf('V');
+ if (index != -1) {
+ String s = databaseProductVersion.substring(index);
+ s = s.toUpperCase();
+
+ StringTokenizer stringtokenizer = new StringTokenizer(s, "VRM"
+ , false);
+ if (stringtokenizer.countTokens() == 3) {
+ String s1 = stringtokenizer.nextToken();
+ maj = Integer.parseInt(s1);
+ String s2 = stringtokenizer.nextToken();
+ min = Integer.parseInt(s2);
+ }
+ }
+ else {
+ index = databaseProductVersion.indexOf('0');
+ if (index != -1) {
+ String s = databaseProductVersion.substring(index);
+ s = s.toUpperCase();
+
+ StringTokenizer stringtokenizer = new StringTokenizer(s, "0"
+ , false);
+ if (stringtokenizer.countTokens() == 2) {
+ String s1 = stringtokenizer.nextToken();
+ maj = Integer.parseInt(s1);
+ String s2 = stringtokenizer.nextToken();
+ min = Integer.parseInt(s2);
+ }
+ }
}
}
}