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