You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2019/09/12 12:43:20 UTC
[cayenne] 01/02: CAY-2617 NPE in processing hierarchical prefetch
node - process null case
This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch STABLE-4.1
in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 51b9f4f72e68f167f45d7997d8aa685d3464ff79
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Thu Sep 12 15:32:13 2019 +0300
CAY-2617 NPE in processing hierarchical prefetch node
- process null case
---
.../src/main/java/org/apache/cayenne/access/ObjectResolver.java | 7 +++----
.../java/org/apache/cayenne/access/PrefetchProcessorJointNode.java | 6 ++----
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/ObjectResolver.java b/cayenne-server/src/main/java/org/apache/cayenne/access/ObjectResolver.java
index d658abf..6b54c59 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/ObjectResolver.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/ObjectResolver.java
@@ -290,12 +290,11 @@ class ObjectResolver {
// null either means a bug in Cayenne (e.g. CAY-2101) or the inheritance qualifiers are messed up
if(entityName == null) {
-
if(LOGGER.isWarnEnabled()) {
- LOGGER.warn("** Null entity name for DataRow, can't resolve sub descriptor for "
- + descriptor.getEntity().getName());
- return descriptor;
+ LOGGER.warn("** Null entity name for DataRow, can't resolve sub descriptor for {}",
+ descriptor.getEntity().getName());
}
+ return descriptor;
}
return context.getEntityResolver().getClassDescriptor(entityName);
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java b/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
index dc7003a..7b8cd03 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
@@ -139,12 +139,10 @@ class PrefetchProcessorJointNode extends PrefetchProcessorNode {
row.put(column.getName(), flatRow.get(column.getDataRowKey()));
}
- // since JDBC row reader won't inject JOINED entity name, we have to
- // detect it here...
-
+ // since JDBC row reader won't inject JOINED entity name, we have to detect it here...
ClassDescriptor descriptor = resolver.getDescriptor();
ObjEntity entity = descriptor.getEntityInheritanceTree().entityMatchingRow(row);
- row.setEntityName(entity.getName());
+ row.setEntityName(entity == null ? null : entity.getName());
return row;
}