Skip to content

Commit 95ca59a

Browse files
committed
Fix #30016: support commas in SpEL lists
1 parent 345a2f6 commit 95ca59a

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/main/java/eu/openanalytics/containerproxy/spec/expression/SpecExpressionResolver.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
*/
2121
package eu.openanalytics.containerproxy.spec.expression;
2222

23-
import eu.openanalytics.containerproxy.ContainerProxyException;
2423
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
2524
import org.springframework.context.ApplicationContext;
2625
import org.springframework.context.ConfigurableApplicationContext;
@@ -34,9 +33,7 @@
3433
import org.springframework.expression.Expression;
3534
import org.springframework.expression.ExpressionException;
3635
import org.springframework.expression.ExpressionParser;
37-
import org.springframework.expression.ParseException;
3836
import org.springframework.expression.ParserContext;
39-
import org.springframework.expression.spel.SpelEvaluationException;
4037
import org.springframework.expression.spel.standard.SpelExpressionParser;
4138
import org.springframework.expression.spel.support.StandardEvaluationContext;
4239
import org.springframework.expression.spel.support.StandardTypeConverter;
@@ -48,6 +45,7 @@
4845
import java.util.Map;
4946
import java.util.concurrent.ConcurrentHashMap;
5047
import java.util.stream.Collectors;
48+
import java.util.stream.Stream;
5149

5250
/**
5351
* Note: inspired by org.springframework.context.expression.StandardBeanExpressionResolver
@@ -136,11 +134,14 @@ public List<String> evaluateToList(List<String> expressions, SpecExpressionConte
136134
if (expressions == null) return null;
137135
return expressions.stream()
138136
.flatMap((el) -> {
139-
List<String> result = evaluate(el, context, List.class);
137+
Object result = evaluate(el, context, Object.class);
140138
if (result == null) {
141139
result = new ArrayList<>();
142140
}
143-
return result.stream();
141+
if (result instanceof List) {
142+
return ((List<Object>) result).stream().map(Object::toString);
143+
}
144+
return Stream.of(result.toString());
144145
})
145146
.collect(Collectors.toList());
146147
}

0 commit comments

Comments
 (0)