This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push:
new 8e726be CAY-2720 ConcurrentModificationException in the
TypeAwareSQLTreeProcessor
8e726be is described below
commit 8e726be3b8f41e7f0a73a6cb77ac7f0af6117fac
Author: Nikita Timofeev <[email protected]>
AuthorDate: Wed Sep 8 19:13:28 2021 +0300
CAY-2720 ConcurrentModificationException in the TypeAwareSQLTreeProcessor
---
.../access/sqlbuilder/sqltree/PerAttributeChildProcessor.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git
a/cayenne-server/src/main/java/org/apache/cayenne/access/sqlbuilder/sqltree/PerAttributeChildProcessor.java
b/cayenne-server/src/main/java/org/apache/cayenne/access/sqlbuilder/sqltree/PerAttributeChildProcessor.java
index 85aaeb1..9677ffc 100644
---
a/cayenne-server/src/main/java/org/apache/cayenne/access/sqlbuilder/sqltree/PerAttributeChildProcessor.java
+++
b/cayenne-server/src/main/java/org/apache/cayenne/access/sqlbuilder/sqltree/PerAttributeChildProcessor.java
@@ -44,8 +44,12 @@ public class PerAttributeChildProcessor<T extends Node>
implements ChildProcesso
@Override
public Optional<Node> process(Node parent, T child, int index) {
+ DbAttribute dbAttribute = attributeMapper.apply(child);
+ if(dbAttribute == null) {
+ return processorFactory.apply(null).process(parent, child, index);
+ }
return processorByAttribute
- .computeIfAbsent(attributeMapper.apply(child),
processorFactory)
+ .computeIfAbsent(dbAttribute, processorFactory)
.process(parent, child, index);
}
}