diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/GridExpressionUtils.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/GridExpressionUtils.java index ad541a2bb5adf36b3da7d9917d4490dd15373c01..8868dfa1e351b106aa32e3966d8674a8e81baa4f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/GridExpressionUtils.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/calculator/GridExpressionUtils.java @@ -58,7 +58,7 @@ public class GridExpressionUtils EVALUATION_SERIOUS_ERROR_MSG + "applying the filter: "; private static final String COLUMN_EVALUATION_SERIOUS_ERROR_TEMPLATE = - "Error: calculating the value of a custom column '%s' failed, conntact you administrator: "; + "Error: calculating the value of a custom column '%s' failed, contact your administrator: "; private static final String COLUMN_EVALUATION_ERROR_TEMPLATE = COLUMN_EVALUATION_SERIOUS_ERROR_TEMPLATE + "invalid column definition. "; @@ -115,8 +115,7 @@ public class GridExpressionUtils Map<String, RowCalculator<T>> calculators = new HashMap<String, RowCalculator<T>>(); for (GridCustomColumn customColumn : customColumns) { - String expression = StringEscapeUtils.unescapeHtml(customColumn.getExpression()); - RowCalculator<T> rowCalculator = new RowCalculator<T>(availableColumns, expression); + RowCalculator<T> rowCalculator = createRowCalculator(availableColumns, customColumn); calculators.put(customColumn.getCode(), rowCalculator); } for (T rowData : allRows) @@ -135,6 +134,19 @@ public class GridExpressionUtils return result; } + private static <T> RowCalculator<T> createRowCalculator( + Set<IColumnDefinition<T>> availableColumns, GridCustomColumn customColumn) + { + String expression = StringEscapeUtils.unescapeHtml(customColumn.getExpression()); + try + { + return new RowCalculator<T>(availableColumns, expression); + } catch (Exception ex) + { + throw new UserFailureException(createCustomColumnErrorMessage(customColumn, ex)); + } + } + private static List<GridCustomColumnInfo> extractColumnInfos( List<GridCustomColumn> customColumns) {