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);
+                    }
+                }
             }
         }
     }