This is an automated email from the ASF dual-hosted git repository. ramyav pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/olingo-odata4.git
The following commit(s) were added to refs/heads/master by this push: new ac7d8db [OLINGO-1368]Fix for OData in operator for Integer values ac7d8db is described below commit ac7d8dbd62d4b284b580618bfb1cac4bf7831e73 Author: ramya vasanth <ramya.vasa...@sap.com> AuthorDate: Wed Feb 26 11:39:11 2020 +0530 [OLINGO-1368]Fix for OData in operator for Integer values --- .../olingo/server/core/uri/parser/ExpressionParser.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ExpressionParser.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ExpressionParser.java index cf2074a..8f69f81 100644 --- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ExpressionParser.java +++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/ExpressionParser.java @@ -338,7 +338,7 @@ public class ExpressionParser { if (tokenizer.next(TokenKind.OPEN)) { ParserHelper.bws(tokenizer); List<Expression> expressionList = parseInExpr(); - checkInExpressionTypes(expressionList, kinds); + checkInExpressionTypes(expressionList, leftExprType); return new BinaryImpl(left, BinaryOperatorKind.IN, expressionList, odata.createPrimitiveTypeInstance(EdmPrimitiveTypeKind.Boolean)); } else { @@ -354,19 +354,20 @@ public class ExpressionParser { /** * @param expressionList - * @param kinds + * @param leftExprType * @throws UriParserException * @throws UriParserSemanticException */ - private void checkInExpressionTypes(List<Expression> expressionList, EdmPrimitiveTypeKind kinds) + private void checkInExpressionTypes(List<Expression> expressionList, EdmType leftExprType) throws UriParserException, UriParserSemanticException { for (Expression expr : expressionList) { EdmType inExprType = getType(expr); - if (!isType(inExprType, kinds)) { + + if (!(((EdmPrimitiveType) leftExprType).isCompatible((EdmPrimitiveType) inExprType))) { throw new UriParserSemanticException("Incompatible types.", UriParserSemanticException.MessageKeys.TYPES_NOT_COMPATIBLE, inExprType == null ? "" : inExprType.getFullQualifiedName().getFullQualifiedNameAsString(), - kinds.getFullQualifiedName().getFullQualifiedNameAsString()); + leftExprType.getFullQualifiedName().getFullQualifiedNameAsString()); } } }