From bb69995bc7da0959e8fa3a971a7b94cf3b412eba Mon Sep 17 00:00:00 2001 From: wliu Date: Wed, 21 Mar 2012 11:07:21 +0000 Subject: [PATCH] Fix Feature TDI-18966: when setting optional on the input loop node, then the loop nodes can be unavailable in the source file. http://jira.talendforge.org/browse/TDI-18966 git-svn-id: http://talendforge.org/svn/tos/trunk@80240 f6f1c999-d317-4740-80b0-e6d1abc6f99e --- .../resources/java/routines/system/Document.java | 4 ++-- .../java/routines/system/DocumentToFlat.java | 14 +++++--------- 2 files changed, 7 insertions(+), 11 deletions(-) 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