From ed6acb0ab9b92cb83aefcb3a8b6151ea24130cac Mon Sep 17 00:00:00 2001 From: Patrick Huang Date: Thu, 23 Apr 2015 12:39:52 +1000 Subject: [PATCH] rely on content not content state when determine what can be omitted in push --- .../client/commands/push/PushCommand.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/zanata-client-commands/src/main/java/org/zanata/client/commands/push/PushCommand.java b/zanata-client-commands/src/main/java/org/zanata/client/commands/push/PushCommand.java index bda35eff..66a6a325 100644 --- a/zanata-client-commands/src/main/java/org/zanata/client/commands/push/PushCommand.java +++ b/zanata-client-commands/src/main/java/org/zanata/client/commands/push/PushCommand.java @@ -39,10 +39,13 @@ import org.zanata.rest.dto.resource.TranslationsResource; import com.google.common.base.Predicate; -import com.google.common.collect.Collections2; +import com.google.common.base.Strings; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.UniformInterfaceException; +import static com.google.common.collect.Collections2.filter; +import static com.google.common.collect.Iterables.all; + /** * @author Sean Flanigan sflaniga@redhat.com @@ -452,14 +455,25 @@ private static void stripUntranslatedEntriesIfMergeTypeIsNotImport( if (!MergeType.IMPORT.name().equalsIgnoreCase(mergeType)) { List originalTargets = translationResources.getTextFlowTargets(); - Collection untranslatedEntries = Collections2 - .filter(originalTargets, + final Predicate blankStringPredicate = + new Predicate() { + @Override + public boolean apply(String input) { + return Strings.isNullOrEmpty(input); + } + }; + + Collection untranslatedEntries = + filter(originalTargets, new Predicate() { @Override public boolean apply( TextFlowTarget input) { - return input == null || - input.getState().isUntranslated(); + // it's unsafe to rely on content state (plural entries) + return input == null + || input.getContents().isEmpty() + || all(input.getContents(), + blankStringPredicate); } }); log.debug(