Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Correctness - API / Semantic Implementation
-
Low
-
Low Hanging Fruit
-
Code Inspection
-
All
-
None
-
Description
While working on CASSANDRA-15232 I noticed that OperationExecutionException is not processed correctly.
How to reproduce the issue:
1. create table d (numerator decimal primary key, denominator decimal);
2. insert into d (numerator, denominator) values (123456789112345678921234567893123456, 2);
3. select numerator % denominator from d;
What happens:
1. remainder operation throws ArithmeticException (BigDecimal:1854)
2. The exception is wrapped in OperationExecutionException
3. ClassCastException appears (OperationExecutionException cannot be cast to FunctionExecutionException at ErrorMessage.java:280)
What should happen:
OperationExecutionException with message "the operation 'decimal % decimal' failed: Division impossible" should be delivered to user
Note that after fixing CASSANDRA-15232 select numerator % denominator from d; will produce correct result of remainder operation.
Currently I am not aware of other cases when OperationExecutionException may be treated as FunctionExecutionException