From e52075665f19605ee14fc3b6728ea1d0e88149f9 Mon Sep 17 00:00:00 2001 From: Kevin Krouse Date: Thu, 19 Dec 2019 15:08:06 -0800 Subject: [PATCH 1/3] Use correct type in ConditionalFormat.validateFormat create a default object value of the right type when validating the format --- .../org/labkey/api/data/ConditionalFormat.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/api/src/org/labkey/api/data/ConditionalFormat.java b/api/src/org/labkey/api/data/ConditionalFormat.java index fe9f09b6b80..d0a1875b75f 100644 --- a/api/src/org/labkey/api/data/ConditionalFormat.java +++ b/api/src/org/labkey/api/data/ConditionalFormat.java @@ -33,6 +33,7 @@ import org.labkey.data.xml.ConditionalFormatsType; import java.awt.*; +import java.lang.reflect.InvocationTargetException; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collections; @@ -119,7 +120,7 @@ public String validateFormat(@NotNull ColumnRenderProperties col) { try { - _meetsCriteria(col, "ignored"); + _meetsCriteria(col, newValue(col)); return null; } catch (RuntimeSQLException e) @@ -137,6 +138,19 @@ public String validateFormat(@NotNull ColumnRenderProperties col) } } + private Object newValue(ColumnRenderProperties col) + { + try + { + return col.getJavaClass().getDeclaredConstructor().newInstance(); + } + catch (ReflectiveOperationException e) + { + // ok + return null; + } + } + @NotNull public String getCssStyle() { From 2d589e8e05a597f71dca66deb5a766ef4a8ff30a Mon Sep 17 00:00:00 2001 From: Kevin Krouse Date: Thu, 19 Dec 2019 16:12:48 -0800 Subject: [PATCH 2/3] match expected text in LookupToSampleIDTest.testSamplesSameContainerIntegerWarning --- api/src/org/labkey/api/assay/AbstractAssayTsvDataHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/org/labkey/api/assay/AbstractAssayTsvDataHandler.java b/api/src/org/labkey/api/assay/AbstractAssayTsvDataHandler.java index 80178bea4ca..e6f1952bb4d 100644 --- a/api/src/org/labkey/api/assay/AbstractAssayTsvDataHandler.java +++ b/api/src/org/labkey/api/assay/AbstractAssayTsvDataHandler.java @@ -913,7 +913,7 @@ else if (o instanceof MvFieldWrapper) Object remapped = cache.remap(lookupTable, (String)o); if (remapped == null) { - errors.add(new PropertyValidationError("Failed to convert '" + pd.getName() + "': " + o, pd.getName())); + errors.add(new PropertyValidationError("Failed to convert '" + pd.getName() + "': Could not translate value: " + o, pd.getName())); } else if (o != remapped) { From 8671b7df466afdeb505568ebd58b6bf03dbeb48a Mon Sep 17 00:00:00 2001 From: Kevin Krouse Date: Fri, 20 Dec 2019 13:30:52 -0800 Subject: [PATCH 3/3] document the newValue method used by validateFormat --- api/src/org/labkey/api/data/ConditionalFormat.java | 1 + 1 file changed, 1 insertion(+) diff --git a/api/src/org/labkey/api/data/ConditionalFormat.java b/api/src/org/labkey/api/data/ConditionalFormat.java index d0a1875b75f..c6b95759902 100644 --- a/api/src/org/labkey/api/data/ConditionalFormat.java +++ b/api/src/org/labkey/api/data/ConditionalFormat.java @@ -138,6 +138,7 @@ public String validateFormat(@NotNull ColumnRenderProperties col) } } + // best-effort to create new value instance for validating conditional format parameters private Object newValue(ColumnRenderProperties col) { try