Author: cbegin
Date: Fri Jun  5 04:25:10 2009
New Revision: 781909

URL: http://svn.apache.org/viewvc?rev=781909&view=rev
Log:
fixed migration generated key support bug

Modified:
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/SqlRunner.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/jdbc/SqlRunnerTest.java
    ibatis/trunk/java/ibatis-3/version.properties

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/SqlRunner.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/SqlRunner.java?rev=781909&r1=781908&r2=781909&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/SqlRunner.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/jdbc/SqlRunner.java
 Fri Jun  5 04:25:10 2009
@@ -11,15 +11,15 @@
 
   private Connection connection;
   private TypeHandlerRegistry typeHandlerRegistry;
-  private boolean forceGeneratedKeySupport;
+  private boolean useGeneratedKeySupport;
 
   public SqlRunner(Connection connection) {
     this.connection = connection;
     this.typeHandlerRegistry = new TypeHandlerRegistry();
   }
 
-  public void setForceGeneratedKeySupport(boolean forceGeneratedKeySupport) {
-    this.forceGeneratedKeySupport = forceGeneratedKeySupport;
+  public void setUseGeneratedKeySupport(boolean useGeneratedKeySupport) {
+    this.useGeneratedKeySupport = useGeneratedKeySupport;
   }
 
   /**
@@ -71,7 +71,7 @@
    */
   public int insert(String sql, Object... args) throws SQLException {
     PreparedStatement ps;
-    if (forceGeneratedKeySupport || 
connection.getMetaData().supportsGetGeneratedKeys()) {
+    if (useGeneratedKeySupport) {
       ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
     } else {
       ps = connection.prepareStatement(sql);
@@ -80,13 +80,20 @@
     try {
       setParameters(ps, args);
       ps.executeUpdate();
-      if (forceGeneratedKeySupport || 
connection.getMetaData().supportsGetGeneratedKeys()) {
+      if (useGeneratedKeySupport) {
         List<Map<String, Object>> keys = getResults(ps.getGeneratedKeys());
         if (keys.size() == 1) {
           Map<String, Object> key = keys.get(0);
           Iterator i = key.values().iterator();
           if (i.hasNext()) {
-            return Integer.parseInt(i.next().toString());
+            Object genkey = i.next();
+            if (genkey != null) {
+              try {
+                return Integer.parseInt(genkey.toString());
+              } catch (NumberFormatException e) {
+                //ignore, no numeric key suppot
+              }
+            }
           }
         }
       }

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java?rev=781909&r1=781908&r2=781909&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java
 Fri Jun  5 04:25:10 2009
@@ -12,6 +12,7 @@
   private static final String PATH_PREFIX = "--path=";
   private static final String ENV_PREFIX = "--env=";
   private static final String FORCE = "--force";
+  private static final String TRACE = "--trace";
   private static final String HELP = "--help";
 
   private static final String INIT = "init";
@@ -28,6 +29,7 @@
   private File repository;
   private String environment;
   private boolean force;
+  private boolean trace;
 
   private String command;
   private String params;
@@ -51,8 +53,10 @@
         try {
           runCommand();
         } catch (MigrationException e) {
-          out.println("ERROR: " + e.getMessage());
-          printUsage();
+          out.println("\nERROR: " + e.getMessage());
+          if (trace) {
+            e.printStackTrace();
+          }
         }
       }
     } finally {
@@ -86,6 +90,8 @@
         repository = new File(arg.split("=")[1]);
       } else if (arg.startsWith(ENV_PREFIX) && arg.length() > 
ENV_PREFIX.length()) {
         environment = arg.split("=")[1];
+      } else if (arg.startsWith(TRACE)) {
+        trace = true;
       } else if (arg.startsWith(FORCE)) {
         force = true;
       } else if (arg.startsWith(HELP)) {

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/jdbc/SqlRunnerTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/jdbc/SqlRunnerTest.java?rev=781909&r1=781908&r2=781909&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/jdbc/SqlRunnerTest.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/jdbc/SqlRunnerTest.java
 Fri Jun  5 04:25:10 2009
@@ -38,7 +38,7 @@
     runScript(ds, BLOG_DDL);
     Connection connection = ds.getConnection();
     SqlRunner exec = new SqlRunner(connection);
-    exec.setForceGeneratedKeySupport(true);
+    exec.setUseGeneratedKeySupport(true);
     int id = exec.insert("INSERT INTO author (username, password, email, bio) 
VALUES (?,?,?,?)", "someone", "******", "[email protected]", Null.LONGVARCHAR);
     Map row = exec.selectOne("SELECT * FROM author WHERE username = ?", 
"someone");
     connection.rollback();

Modified: ibatis/trunk/java/ibatis-3/version.properties
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/version.properties?rev=781909&r1=781908&r2=781909&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/version.properties (original)
+++ ibatis/trunk/java/ibatis-3/version.properties Fri Jun  5 04:25:10 2009
@@ -1,5 +1,5 @@
 #Build version info
-#Sun May 31 14:31:22 MDT 2009
+#Thu Jun 04 22:14:44 MDT 2009
 version=3.0.0
-buildDate=2009/05/31 14\:31
-buildNum=162
+buildDate=2009/06/04 22\:14
+buildNum=168


Reply via email to