[ 
https://issues.apache.org/jira/browse/EAGLE-41?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15125436#comment-15125436
 ] 

Hao Chen commented on EAGLE-41:
-------------------------------

Sent pull request for siddhi community: https://github.com/wso2/siddhi/pull/120

> Eagle policy engine supports customizable ExceptionHandler instead of using 
> FetalExceptionHandler
> -------------------------------------------------------------------------------------------------
>
>                 Key: EAGLE-41
>                 URL: https://issues.apache.org/jira/browse/EAGLE-41
>             Project: Eagle
>          Issue Type: Bug
>    Affects Versions: 0.3.0
>            Reporter: Hao Chen
>            Assignee: Hao Chen
>             Fix For: 0.3.0
>
>
> Currently Eagle Siddhi CEP engine bolt will always crash once caught with any 
> bad message:
> {code:title=Error 
> logs|theme=FadeToGrey|linenumbers=true|language=java|firstline=0001|collapse=true}
> 2015-11-17 01:42:31 b.s.d.executor [INFO] Prepared bolt 
> metricStreamExecutor_0:(8)
> 2015-11-17 01:42:55 STDIO [ERROR] Nov 17, 2015 1:42:55 AM 
> com.lmax.disruptor.FatalExceptionHandler handleEventException
> SEVERE: Exception processing: 1 IndexedEvent{streamIndex=0, 
> event=Event{timestamp=1447749775529, 
> data=[eagle.alert.siddhi.EagleAlertContext@2ce1e618, NA, 
> devdbx-003-12315.phx-os1.stratus.dev.ebay.com, freeSpace, shared, 
> 1547664650590, 10], isExpired=false}}
> java.lang.ClassCastException: java.lang.String cannot be cast to 
> java.lang.Double
>       at 
> org.wso2.siddhi.core.executor.condition.compare.less_than.LessThanCompareConditionExpressionExecutorDoubleInt.execute(LessThanCompareConditionExpressionExecutorDoubleInt.java:31)
>       at 
> org.wso2.siddhi.core.executor.condition.compare.CompareConditionExpressionExecutor.execute(CompareConditionExpressionExecutor.java:38)
>       at 
> org.wso2.siddhi.core.executor.condition.compare.CompareConditionExpressionExecutor.execute(CompareConditionExpressionExecutor.java:23)
>       at 
> org.wso2.siddhi.core.executor.condition.AndConditionExpressionExecutor.execute(AndConditionExpressionExecutor.java:53)
>       at 
> org.wso2.siddhi.core.executor.condition.AndConditionExpressionExecutor.execute(AndConditionExpressionExecutor.java:24)
>       at 
> org.wso2.siddhi.core.query.processor.filter.FilterProcessor.process(FilterProcessor.java:49)
>       at 
> org.wso2.siddhi.core.query.input.ProcessStreamReceiver.processAndClear(ProcessStreamReceiver.java:93)
>       at 
> org.wso2.siddhi.core.query.input.ProcessStreamReceiver.receive(ProcessStreamReceiver.java:65)
>       at 
> org.wso2.siddhi.core.stream.StreamJunction.sendEvent(StreamJunction.java:114)
>       at 
> org.wso2.siddhi.core.stream.StreamJunction$Publisher.send(StreamJunction.java:280)
>       at 
> org.wso2.siddhi.core.stream.input.InputDistributor.send(InputDistributor.java:32)
>       at 
> org.wso2.siddhi.core.stream.input.SingleThreadEntryValve.send(SingleThreadEntryValve.java:46)
>       at 
> org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.sendEvents(SingleStreamEntryValve.java:152)
>       at 
> org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.onEvent(SingleStreamEntryValve.java:140)
>       at 
> org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.onEvent(SingleStreamEntryValve.java:110)
>       at 
> com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:113)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
> 2015-11-17 01:42:55 o.a.s.z.s.NIOServerCnxnFactory [ERROR] Thread 
> Thread[Siddhi-cc2b5e49-00d8-43ea-bac6-c25d9b7e9332-executor-thread-0,5,main] 
> died
> java.lang.RuntimeException: java.lang.ClassCastException: java.lang.String 
> cannot be cast to java.lang.Double
>       at 
> com.lmax.disruptor.FatalExceptionHandler.handleEventException(FatalExceptionHandler.java:45)
>  ~[disruptor-2.10.1.jar:na]
>       at 
> com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128) 
> ~[disruptor-2.10.1.jar:na]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  ~[na:1.7.0_60]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  ~[na:1.7.0_60]
>       at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_60]
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to 
> java.lang.Double
>       at 
> org.wso2.siddhi.core.executor.condition.compare.less_than.LessThanCompareConditionExpressionExecutorDoubleInt.execute(LessThanCompareConditionExpressionExecutorDoubleInt.java:31)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.executor.condition.compare.CompareConditionExpressionExecutor.execute(CompareConditionExpressionExecutor.java:38)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.executor.condition.compare.CompareConditionExpressionExecutor.execute(CompareConditionExpressionExecutor.java:23)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.executor.condition.AndConditionExpressionExecutor.execute(AndConditionExpressionExecutor.java:53)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.executor.condition.AndConditionExpressionExecutor.execute(AndConditionExpressionExecutor.java:24)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.query.processor.filter.FilterProcessor.process(FilterProcessor.java:49)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.query.input.ProcessStreamReceiver.processAndClear(ProcessStreamReceiver.java:93)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.query.input.ProcessStreamReceiver.receive(ProcessStreamReceiver.java:65)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.stream.StreamJunction.sendEvent(StreamJunction.java:114) 
> ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.stream.StreamJunction$Publisher.send(StreamJunction.java:280)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.stream.input.InputDistributor.send(InputDistributor.java:32)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.stream.input.SingleThreadEntryValve.send(SingleThreadEntryValve.java:46)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.sendEvents(SingleStreamEntryValve.java:152)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.onEvent(SingleStreamEntryValve.java:140)
>  ~[stormjar.jar:na]
>       at 
> org.wso2.siddhi.core.stream.input.SingleStreamEntryValve$SingleEntryValveHandler.onEvent(SingleStreamEntryValve.java:110)
>  ~[stormjar.jar:na]
>       at 
> com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:113) 
> ~[disruptor-2.10.1.jar:na]
>       ... 3 common frames omitted
> {code}
> To fix the problem, we should support to customize ExceptionHandler for 
> Siddhi CEP engine before starting the Disruptor threads.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to