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
commit 409228cdbe9fe67055fa4ac13f9a4966f773fc5e Author: Ralf Schuchardt <r...@gmx.de> AuthorDate: Sat Apr 4 20:57:38 2020 +0200 Exception in dbimport when relationships should be imported, but no explicit import configuration exists. If there is no explicit configuration (included or excluded tables) then sourceTableFilter in RelationshipFilter.checkAndAddRelationship is null and a NullPointerException is thrown. This is an inconsistent behaviour, because without importing relationships the dbimport itself does work otherwise. --- .../dbsync/reverse/dbload/RelationshipLoader.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipLoader.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipLoader.java index d30f682..2bd96ce 100644 --- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipLoader.java +++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipLoader.java @@ -120,7 +120,7 @@ public class RelationshipLoader extends AbstractLoader { .tableFilter(relationship.getTargetEntity().getCatalog(), relationship.getTargetEntity().getSchema()); // check that relationship can be included - if(!sourceTableFilter.getIncludeTableRelationshipFilter(entity.getName()) + if(sourceTableFilter != null && !sourceTableFilter.getIncludeTableRelationshipFilter(entity.getName()) .isIncluded(relationship.getName())) { return; } @@ -131,12 +131,14 @@ public class RelationshipLoader extends AbstractLoader { return; } - // check that all join attributes are included - for(DbJoin join : relationship.getJoins()) { - if(!sourceTableFilter.getIncludeTableColumnFilter(entity.getName()).isIncluded(join.getSourceName()) || - !targetTableFilter.getIncludeTableColumnFilter(relationship.getTargetEntityName()).isIncluded(join.getTargetName())) { - return; - } + if(sourceTableFilter != null && targetTableFilter != null) { + // check that all join attributes are included + for(DbJoin join : relationship.getJoins()) { + if(!sourceTableFilter.getIncludeTableColumnFilter(entity.getName()).isIncluded(join.getSourceName()) || + !targetTableFilter.getIncludeTableColumnFilter(relationship.getTargetEntityName()).isIncluded(join.getTargetName())) { + return; + } + } } // add relationship if delegate permit it