[ 
https://issues.apache.org/jira/browse/OLINGO-1412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Patrick Coutu updated OLINGO-1412:
----------------------------------
    Description: 
Problem was not present in V2 2.0.4.  After upgrading to V2 2.0.11, applying 
filters against Enum field values which contain _ (underscore) characters throw 
IllegalArgumentExceptions. 

It appears to be incorrectly applying sql wildcard chracter escaping 

 
{code:java}
Caused by: java.lang.IllegalArgumentException: No enum constant 
com.abc.entity.TheEnum.TEST\_VALUE at 
java.base/java.lang.Enum.valueOf(Enum.java:240) at 
org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.evaluateExpressionForString(ODataExpressionParser.java:642)
 at 
org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.evaluateComparingExpression(ODataExpressionParser.java:524)
 at 
org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.parseToJPAWhereExpression(ODataExpressionParser.java:246)
 at 
org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.parseToJPAWhereExpression(ODataExpressionParser.java:136)
 at 
org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.parseToJPAWhereExpression(ODataExpressionParser.java:119)
 at 
org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.parseToJPAWhereExpression(ODataExpressionParser.java:92)
 at 
org.apache.olingo.odata2.jpa.processor.core.jpql.JPQLSelectContext$JPQLSelectContextBuilder.generateWhereExpression(JPQLSelectContext.java:190)
 at 
org.apache.olingo.odata2.jpa.processor.core.jpql.JPQLSelectContext$JPQLSelectContextBuilder.build(JPQLSelectContext.java:123)
 at 
org.apache.olingo.odata2.jpa.processor.core.access.data.JPAQueryBuilder.buildJPQLContext(JPAQueryBuilder.java:370)
 at 
org.apache.olingo.odata2.jpa.processor.core.access.data.JPAQueryBuilder.buildQuery(JPAQueryBuilder.java:266)
 at 
org.apache.olingo.odata2.jpa.processor.core.access.data.JPAQueryBuilder.build(JPAQueryBuilder.java:92)
{code}

  was:
Problem was not present in V2 2.0.4.  After upgrading to V2 2.0.11, applying 
filters against Enum field values which contain _ (underscore) characters throw 
IllegalArgumentExceptions. 

It appears to be incorrectly applying sql wildcard chracter escaping 

 
{code:java}
Caused by: java.lang.IllegalArgumentException: No enum constant 
com.abc.entity.TheEnum.TEST\_VALUE
Caused by: java.lang.IllegalArgumentException: No enum constant 
com.abc.entity.TheEnum.TEST\_VALUE at 
java.base/java.lang.Enum.valueOf(Enum.java:240) at 
org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.evaluateExpressionForString(ODataExpressionParser.java:642)
 at 
org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.evaluateComparingExpression(ODataExpressionParser.java:524)
 at 
org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.parseToJPAWhereExpression(ODataExpressionParser.java:246)
 at 
org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.parseToJPAWhereExpression(ODataExpressionParser.java:136)
 at 
org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.parseToJPAWhereExpression(ODataExpressionParser.java:119)
 at 
org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.parseToJPAWhereExpression(ODataExpressionParser.java:92)
 at 
org.apache.olingo.odata2.jpa.processor.core.jpql.JPQLSelectContext$JPQLSelectContextBuilder.generateWhereExpression(JPQLSelectContext.java:190)
 at 
org.apache.olingo.odata2.jpa.processor.core.jpql.JPQLSelectContext$JPQLSelectContextBuilder.build(JPQLSelectContext.java:123)
 at 
org.apache.olingo.odata2.jpa.processor.core.access.data.JPAQueryBuilder.buildJPQLContext(JPAQueryBuilder.java:370)
 at 
org.apache.olingo.odata2.jpa.processor.core.access.data.JPAQueryBuilder.buildQuery(JPAQueryBuilder.java:266)
 at 
org.apache.olingo.odata2.jpa.processor.core.access.data.JPAQueryBuilder.build(JPAQueryBuilder.java:92)
{code}


> filtering on enum values containing underscore characters throws 
> IllegalArgumentException
> -----------------------------------------------------------------------------------------
>
>                 Key: OLINGO-1412
>                 URL: https://issues.apache.org/jira/browse/OLINGO-1412
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata2-jpa
>    Affects Versions: V2 2.0.11
>            Reporter: Patrick Coutu
>            Priority: Major
>
> Problem was not present in V2 2.0.4.  After upgrading to V2 2.0.11, applying 
> filters against Enum field values which contain _ (underscore) characters 
> throw IllegalArgumentExceptions. 
> It appears to be incorrectly applying sql wildcard chracter escaping 
>  
> {code:java}
> Caused by: java.lang.IllegalArgumentException: No enum constant 
> com.abc.entity.TheEnum.TEST\_VALUE at 
> java.base/java.lang.Enum.valueOf(Enum.java:240) at 
> org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.evaluateExpressionForString(ODataExpressionParser.java:642)
>  at 
> org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.evaluateComparingExpression(ODataExpressionParser.java:524)
>  at 
> org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.parseToJPAWhereExpression(ODataExpressionParser.java:246)
>  at 
> org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.parseToJPAWhereExpression(ODataExpressionParser.java:136)
>  at 
> org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.parseToJPAWhereExpression(ODataExpressionParser.java:119)
>  at 
> org.apache.olingo.odata2.jpa.processor.core.ODataExpressionParser.parseToJPAWhereExpression(ODataExpressionParser.java:92)
>  at 
> org.apache.olingo.odata2.jpa.processor.core.jpql.JPQLSelectContext$JPQLSelectContextBuilder.generateWhereExpression(JPQLSelectContext.java:190)
>  at 
> org.apache.olingo.odata2.jpa.processor.core.jpql.JPQLSelectContext$JPQLSelectContextBuilder.build(JPQLSelectContext.java:123)
>  at 
> org.apache.olingo.odata2.jpa.processor.core.access.data.JPAQueryBuilder.buildJPQLContext(JPAQueryBuilder.java:370)
>  at 
> org.apache.olingo.odata2.jpa.processor.core.access.data.JPAQueryBuilder.buildQuery(JPAQueryBuilder.java:266)
>  at 
> org.apache.olingo.odata2.jpa.processor.core.access.data.JPAQueryBuilder.build(JPAQueryBuilder.java:92)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to