diff --git a/org.talend.librariesmanager/resources/java/routines/system/Document.java b/org.talend.librariesmanager/resources/java/routines/system/Document.java index dd6bfc9a3c..f5caf14376 100644 --- a/org.talend.librariesmanager/resources/java/routines/system/Document.java +++ b/org.talend.librariesmanager/resources/java/routines/system/Document.java @@ -52,7 +52,7 @@ public class Document implements java.io.Serializable{ * @param matchingMode * @return */ - public List> LookupDocument(String loopXPath, Map lookupInfo, + public List> LookupDocument(String loopXPath,boolean isOptionalLoop, Map lookupInfo, Map xpathOfResults, Map nsMapping, Map xpathToTypeMap,Map xpathToPatternMap,String matchingMode) { if (doc == null || lookupInfo == null) { @@ -66,7 +66,7 @@ public class Document implements java.io.Serializable{ docToFlat.setDoc(document); docToFlat.setOriginalLoop(loopXPath); docToFlat.setXmlNameSpaceMap(nsMapping); - docToFlat.flatForLookup(); + docToFlat.flatForLookup(isOptionalLoop); if(docToFlat.isLoopChanged()) {//never change the original lookup information object state lookupInfo = docToFlat.getLookupInfo(); xpathOfResults = docToFlat.getXpathOfResults(); diff --git a/org.talend.librariesmanager/resources/java/routines/system/DocumentToFlat.java b/org.talend.librariesmanager/resources/java/routines/system/DocumentToFlat.java index 04c1fd5d72..1920534ffc 100644 --- a/org.talend.librariesmanager/resources/java/routines/system/DocumentToFlat.java +++ b/org.talend.librariesmanager/resources/java/routines/system/DocumentToFlat.java @@ -52,8 +52,7 @@ public class DocumentToFlat { if(this.isOptional && nodes.size() == 0 && !top) { setParentAsLoop(); flat(); - } - if (nodes !=null ) { + } else if (nodes !=null ) { //reset relative paths if(currentLoop != originalLoop) {//not point to the same string for(int i=0;i