This is an automated email from the ASF dual-hosted git repository.

doebele pushed a commit to branch version3
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/version3 by this push:
     new 628f43c  EMPIREDB-362 version 3 migration problem with varargs on 
DBRecord.read(Object... key)
628f43c is described below

commit 628f43ca3530a53a6b587c0f18757efbf79e3ad4
Author: Rainer Döbele <[email protected]>
AuthorDate: Thu Jan 20 15:15:45 2022 +0100

    EMPIREDB-362
    version 3 migration problem with varargs on DBRecord.read(Object... key)
---
 .../jsf2/websample/db/records/EmployeeRecord.java       |  4 +---
 .../empire/vue/sample/db/records/SampleRecord.java      |  2 +-
 .../src/main/java/org/apache/empire/db/DBRecord.java    | 17 ++++++++++++++---
 .../apache/empire/db/hsql/DBDatabaseDriverHSqlTest.java |  4 ++--
 .../empire/db/sqlite/DBDatabaseDriverSQLiteTest.java    |  2 +-
 5 files changed, 19 insertions(+), 10 deletions(-)

diff --git 
a/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/db/records/EmployeeRecord.java
 
b/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/db/records/EmployeeRecord.java
index b1e76c2..0fc7123 100644
--- 
a/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/db/records/EmployeeRecord.java
+++ 
b/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/db/records/EmployeeRecord.java
@@ -25,7 +25,6 @@ import org.apache.empire.db.DBCommand;
 import org.apache.empire.jsf2.websample.db.SampleDB;
 import org.apache.empire.jsf2.websample.db.SampleDB.TEmployees;
 import org.apache.empire.jsf2.websample.web.SampleContext;
-import org.apache.empire.jsf2.websample.web.SampleUtils;
 
 public class EmployeeRecord extends SampleRecord<TEmployees>
 {
@@ -70,8 +69,7 @@ public class EmployeeRecord extends SampleRecord<TEmployees>
     public DepartmentRecord getDepartmentRecord()
     {
         DepartmentRecord rec = new 
DepartmentRecord((SampleContext)getContext());
-        SampleDB.TDepartments table = SampleUtils.getDatabase().T_DEPARTMENTS;
-        rec.read(table, this.getInt(T.DEPARTMENT_ID), 
getContext().getConnection());
+        rec.read(this.getInt(T.DEPARTMENT_ID));
         return rec;
     }
 
diff --git 
a/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/vue/sample/db/records/SampleRecord.java
 
b/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/vue/sample/db/records/SampleRecord.java
index 73a93f1..49df4a1 100644
--- 
a/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/vue/sample/db/records/SampleRecord.java
+++ 
b/empire-db-examples/empire-db-example-vue/src/main/java/org/apache/empire/vue/sample/db/records/SampleRecord.java
@@ -97,7 +97,7 @@ public abstract class SampleRecord<T extends SampleTable> 
extends DBRecord {
         }
         else
         {   // read the current record
-            super.read(T, key, recordContext.getConnection());
+            super.read(key);
         }
         // set all fields
         List<FieldValueException> exptns = new 
ArrayList<FieldValueException>(0);
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBRecord.java 
b/empire-db/src/main/java/org/apache/empire/db/DBRecord.java
index 8674cdd..e49715f 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBRecord.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBRecord.java
@@ -38,7 +38,6 @@ import 
org.apache.empire.db.exceptions.FieldValueNotFetchedException;
 import org.apache.empire.db.expr.compare.DBCompareExpr;
 import org.apache.empire.exceptions.BeanPropertyGetException;
 import org.apache.empire.exceptions.InvalidArgumentException;
-import org.apache.empire.exceptions.MiscellaneousErrorException;
 import org.apache.empire.exceptions.NotSupportedException;
 import org.apache.empire.exceptions.ObjectNotValidException;
 import org.apache.empire.xml.XMLUtil;
@@ -994,10 +993,12 @@ public class DBRecord extends DBRecordData implements 
DBContextAware, Record, Cl
     
     /**
      * Reads a record from the database
+     * Hint: variable args param (Object...) caused problems with migration
      * @param key an array of the primary key values
      */
-    public void read(Object... key)
-    {    
+    public void read(Object[] key)
+    {   
+        /*
         // temporarily check for rowset as first parameter
         // invalid due to conversion from old Api where Rowset was first param
         if (key[0] instanceof DBRowSet)
@@ -1008,11 +1009,21 @@ public class DBRecord extends DBRecordData implements 
DBContextAware, Record, Cl
         for (int i=0; i<key.length; i++)
             if (key[i] instanceof Connection)
                 throw new MiscellaneousErrorException("Version 3 Migration 
Error: DBRecord.read() invalid key!");
+        */        
         // read
         rowset.readRecord(this, key);
         // remove rollback
         context.removeRollbackHandler(this);
     }
+
+    /**
+     * Reads a record from the database
+     * @param id the record id value
+     */
+    public final void read(long id)
+    {
+        read(new Object[] {id});
+    }
     
     /**
      * Reads a record from the database
diff --git 
a/empire-db/src/test/java/org/apache/empire/db/hsql/DBDatabaseDriverHSqlTest.java
 
b/empire-db/src/test/java/org/apache/empire/db/hsql/DBDatabaseDriverHSqlTest.java
index 183bf69..9ed7026 100644
--- 
a/empire-db/src/test/java/org/apache/empire/db/hsql/DBDatabaseDriverHSqlTest.java
+++ 
b/empire-db/src/test/java/org/apache/empire/db/hsql/DBDatabaseDriverHSqlTest.java
@@ -92,7 +92,7 @@ public class DBDatabaseDriverHSqlTest{
         emp.update();
         
         emp = new DBRecord(context, db.EMPLOYEE);
-        emp.read(db.EMPLOYEE, id, conn);
+        emp.read(id);
         
         assertEquals("123456", emp.getString(db.EMPLOYEE.PHONE_NUMBER));
         
@@ -123,7 +123,7 @@ public class DBDatabaseDriverHSqlTest{
         data.setValue(db.DATA.VALUE, "test");
         data.update();
         
-        final Object id = data.getLong(db.DATA.ID);
+        final long id = data.getLong(db.DATA.ID);
         
         DBRecord read = new DBRecord(context, db.DATA);
         read.read(id);
diff --git 
a/empire-db/src/test/java/org/apache/empire/db/sqlite/DBDatabaseDriverSQLiteTest.java
 
b/empire-db/src/test/java/org/apache/empire/db/sqlite/DBDatabaseDriverSQLiteTest.java
index 8f53248..a9300d7 100644
--- 
a/empire-db/src/test/java/org/apache/empire/db/sqlite/DBDatabaseDriverSQLiteTest.java
+++ 
b/empire-db/src/test/java/org/apache/empire/db/sqlite/DBDatabaseDriverSQLiteTest.java
@@ -124,7 +124,7 @@ public class DBDatabaseDriverSQLiteTest{
         data.setValue(db.DATA.VALUE, "test");
         data.update();
         
-        final Object id = data.getLong(db.DATA.ID);
+        final long id = data.getLong(db.DATA.ID);
         
         DBRecord read = new DBRecord(context, db.DATA);
         read.read(id);

Reply via email to