Source:
<code>public static ExpressionEvaluator getExpressionEvaluator(FieldSpec fieldSpec) { ExpressionEvaluator expressionEvaluator = null; if (!fieldSpec.isVirtualColumn()) { String columnName = fieldSpec.getName(); String transformExpression = fieldSpec.getTransformFunction(); if (transformExpression != null) { try { expressionEvaluator = getExpressionEvaluator(transformExpression); } catch (Exception e) { <START> LOGGER.error("Caught exception while constructing expression evaluator for: {}, skipping", transformExpression, e); <END> } } else if (fieldSpec.getFieldType().equals(FieldSpec.FieldType.TIME)) { expressionEvaluator = new DefaultTimeSpecEvaluator((TimeFieldSpec) fieldSpec); } else if (columnName.endsWith(SourceFieldNameExtractor.MAP_KEY_COLUMN_SUFFIX)) { String sourceMapName = columnName.substring(0, columnName.length() - SourceFieldNameExtractor.MAP_KEY_COLUMN_SUFFIX.length()); String defaultMapKeysTransformExpression = getDefaultMapKeysTransformExpression(sourceMapName); expressionEvaluator = getExpressionEvaluator(defaultMapKeysTransformExpression); } else if (columnName.endsWith(SourceFieldNameExtractor.MAP_VALUE_COLUMN_SUFFIX)) { String sourceMapName = columnName.substring(0, columnName.length() - SourceFieldNameExtractor.MAP_VALUE_COLUMN_SUFFIX.length()); String defaultMapValuesTransformExpression = getDefaultMapValuesTransformExpression(sourceMapName); expressionEvaluator = getExpressionEvaluator(defaultMapValuesTransformExpression); } } return expressionEvaluator; }</code><technical_language>include column name in log</technical_language>

Target:
public static ExpressionEvaluator getExpressionEvaluator(FieldSpec fieldSpec) { ExpressionEvaluator expressionEvaluator = null; String columnName = fieldSpec.getName(); String transformExpression = fieldSpec.getTransformFunction(); if (transformExpression != null && !transformExpression.isEmpty()) { try { expressionEvaluator = getExpressionEvaluator(transformExpression); } catch (Exception e) { throw new IllegalStateException( "Caught exception while constructing expression evaluator for transform expression:" + transformExpression + ", of column:" + columnName); } } else if (fieldSpec.getFieldType().equals(FieldSpec.FieldType.TIME)) { TimeFieldSpec timeFieldSpec = (TimeFieldSpec) fieldSpec; TimeGranularitySpec incomingGranularitySpec = timeFieldSpec.getIncomingGranularitySpec(); TimeGranularitySpec outgoingGranularitySpec = timeFieldSpec.getOutgoingGranularitySpec(); if (!incomingGranularitySpec.equals(outgoingGranularitySpec)) { if (!incomingGranularitySpec.getName().equals(outgoingGranularitySpec.getName())) { expressionEvaluator = new DefaultTimeSpecEvaluator(incomingGranularitySpec, outgoingGranularitySpec); } else { throw new IllegalStateException( "Invalid timeSpec - Incoming and outgoing field specs are different, but name " + incomingGranularitySpec .getName() + " is same"); } } } else if (columnName.endsWith(SchemaFieldExtractorUtils.MAP_KEY_COLUMN_SUFFIX)) { String sourceMapName = columnName.substring(0, columnName.length() - SchemaFieldExtractorUtils.MAP_KEY_COLUMN_SUFFIX.length()); String defaultMapKeysTransformExpression = getDefaultMapKeysTransformExpression(sourceMapName); expressionEvaluator = getExpressionEvaluator(defaultMapKeysTransformExpression); } else if (columnName.endsWith(SchemaFieldExtractorUtils.MAP_VALUE_COLUMN_SUFFIX)) { String sourceMapName = columnName.substring(0, columnName.length() - SchemaFieldExtractorUtils.MAP_VALUE_COLUMN_SUFFIX.length()); String defaultMapValuesTransformExpression = getDefaultMapValuesTransformExpression(sourceMapName); expressionEvaluator = getExpressionEvaluator(defaultMapValuesTransformExpression); } return expressionEvaluator; }