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 cd75759 EMPIREDB-362 bugfix
cd75759 is described below
commit cd75759ad0dd10f948d045cc8288bead139a00f6
Author: Rainer Döbele <[email protected]>
AuthorDate: Mon Feb 7 11:03:15 2022 +0100
EMPIREDB-362 bugfix
---
.../org/apache/empire/jsf2/app/WebDBContext.java | 4 +---
.../src/main/java/org/apache/empire/db/DBQuery.java | 9 +--------
.../main/java/org/apache/empire/db/DBRowSet.java | 21 +++++++++++++++++++--
3 files changed, 21 insertions(+), 13 deletions(-)
diff --git
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/app/WebDBContext.java
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/app/WebDBContext.java
index 63bb0ed..8013ebc 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/app/WebDBContext.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/app/WebDBContext.java
@@ -99,8 +99,7 @@ public class WebDBContext<DB extends DBDatabase> extends
DBContextBase implement
}
/**
- * Unclear weather this is any useful
- * Do not call, as the connections are managed by the Application
+ * Unclear weather this is any useful here
*/
@Override
public void discard()
@@ -111,7 +110,6 @@ public class WebDBContext<DB extends DBDatabase> extends
DBContextBase implement
// discard
super.discard();
*/
- throw new NotSupportedException(this, "discard");
}
@Override
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
b/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
index 1fc514d..4107318 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
@@ -403,14 +403,7 @@ public class DBQuery extends DBRowSet
cmd.where(keyColumns[i].is(value));
}
// Read Record
- try {
- // Read Record
- readRecord(record, cmd);
- // setRowsetData(rec, key.clone()); /* not required */
- } catch (QueryNoResultException e) {
- // Record not found
- throw new RecordNotFoundException(this, key);
- }
+ readRecord(record, cmd);
}
/**
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
b/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
index ad443dc..3fac2fa 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
@@ -45,6 +45,7 @@ import
org.apache.empire.db.exceptions.RecordNotFoundException;
import org.apache.empire.db.exceptions.RecordUpdateFailedException;
import org.apache.empire.db.exceptions.RecordUpdateInvalidException;
import org.apache.empire.db.expr.column.DBCountExpr;
+import org.apache.empire.db.expr.compare.DBCompareColExpr;
import org.apache.empire.db.expr.compare.DBCompareExpr;
import org.apache.empire.db.list.DBBeanFactoryCache;
import org.apache.empire.db.list.DBBeanListFactory;
@@ -756,8 +757,24 @@ public abstract class DBRowSet extends DBExpr implements
Entity
reader.getRecordData(cmd);
initRecord(record, reader);
} catch (QueryNoResultException e) {
- // Translate exception
- Object[] key = ((getKeyColumns()!=null) ? record.getKey() : null);
+ // extract key from command
+ Object key[] = cmd.getParamValues();
+ if (key==null)
+ { // extract key from where clause
+ List<DBCompareExpr> where = cmd.getWhereConstraints();
+ key = new Object[where.size()];
+ int i=0;
+ for (DBCompareExpr expr : where)
+ { // get value of compare expr
+ if (expr instanceof DBCompareColExpr)
+ key[i] = ((DBCompareColExpr)expr).getValue();
+ else
+ key[i] = "?"; // unknown
+ i++;
+ }
+ }
+ log.warn("Record [{}] not found in {}", StringUtils.toString(key,
cmd.getSelect()), getName());
+ // throw RecordNotFoundException
throw new RecordNotFoundException(this, key);
} finally {
reader.close();