From: Mathieu Baudier Date: Thu, 11 Feb 2021 09:14:18 +0000 (+0100) Subject: Make multi terms more robust when an existing term has changed. X-Git-Tag: argeo-suite-2.1.20~1^2~8 X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=commitdiff_plain;h=b933bfdb833cdde38bd5d9797ff43a7ee7068dcf Make multi terms more robust when an existing term has changed. --- diff --git a/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java b/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java index 947fbf8..436cc17 100644 --- a/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java +++ b/core/org.argeo.entity.ui/src/org/argeo/entity/ui/forms/MultiTermsPart.java @@ -5,6 +5,8 @@ import java.util.List; import javax.jcr.Item; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.argeo.cms.ui.forms.FormStyle; import org.argeo.cms.ui.util.CmsUiUtils; import org.argeo.cms.ui.viewers.EditablePart; @@ -18,7 +20,6 @@ import org.argeo.jcr.Jcr; import org.eclipse.swt.SWT; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.FocusListener; -import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Composite; @@ -31,6 +32,7 @@ import org.eclipse.swt.widgets.ToolItem; /** {@link EditablePart} for multiple terms. */ public class MultiTermsPart extends AbstractTermsPart { private static final long serialVersionUID = -4961135649177920808L; + private final static Log log = LogFactory.getLog(MultiTermsPart.class); public MultiTermsPart(Composite parent, int style, Item item, TermsManager termsManager, String typology) { super(parent, style, item, termsManager, typology); @@ -176,8 +178,12 @@ public class MultiTermsPart extends AbstractTermsPart { List curr = Jcr.getMultiple(getNode(), property); List res = new ArrayList<>(); if (curr != null) - for (String str : curr) { + terms: for (String str : curr) { Term term = termsManager.getTerm(str); + if (term == null) { + log.warn("Ignoring term " + str + " as it was not found."); + continue terms; + } res.add(term); } return res;