diff --git a/api/src/org/labkey/api/dataiterator/CoerceDataIterator.java b/api/src/org/labkey/api/dataiterator/CoerceDataIterator.java index f900733f5eb..3e5234a8ade 100644 --- a/api/src/org/labkey/api/dataiterator/CoerceDataIterator.java +++ b/api/src/org/labkey/api/dataiterator/CoerceDataIterator.java @@ -17,6 +17,7 @@ import org.labkey.api.collections.CaseInsensitiveHashSet; import org.labkey.api.data.ColumnInfo; +import org.labkey.api.data.JdbcType; import org.labkey.api.data.MultiValuedForeignKey; import org.labkey.api.data.TableInfo; import org.labkey.api.exp.PropertyType; @@ -87,4 +88,11 @@ else if (to.getFk() instanceof MultiValuedForeignKey) } } } + + // Ignore conversion exceptions during coercion and just pass back the original value. + @Override + protected Object handleConversionException(String fieldName, Object value, JdbcType target, Exception x) + { + return value; + } } diff --git a/api/src/org/labkey/api/dataiterator/SimpleTranslator.java b/api/src/org/labkey/api/dataiterator/SimpleTranslator.java index 593b9c38f97..a589029b612 100644 --- a/api/src/org/labkey/api/dataiterator/SimpleTranslator.java +++ b/api/src/org/labkey/api/dataiterator/SimpleTranslator.java @@ -178,7 +178,7 @@ protected boolean validMissingValue(String mv) return _missingValues.containsKey(mv); } - protected Object addConversionException(String fieldName, @Nullable Object value, @Nullable JdbcType target, Exception x) + protected Object handleConversionException(String fieldName, @Nullable Object value, @Nullable JdbcType target, Exception x) { String msg; if (x instanceof ConversionExceptionWithMessage) @@ -651,7 +651,7 @@ final public Object get() } catch (ConversionException x) { - return addConversionException(fieldName, value, type, x); + return handleConversionException(fieldName, value, type, x); } } @@ -1913,7 +1913,7 @@ public boolean next() throws BatchValidationException catch (ConversionException x) { // preferable to handle in call() - _row[i] = addConversionException(_outputColumns.get(i).getKey().getName(), null, null, x); + _row[i] = handleConversionException(_outputColumns.get(i).getKey().getName(), null, null, x); } catch (RuntimeException x) {