org/apache/myfaces/shared/context/ExceptionHandlerImpl.java #
getRootCause(Throwalbe) not work correctly
--------------------------------------------------------------------------------------------------------
Key: MYFACES-2796
URL: https://issues.apache.org/jira/browse/MYFACES-2796
Project: MyFaces Core
Issue Type: Bug
Components: JSR-314
Affects Versions: 2.0.0
Reporter: Gurkan Erdogdu
I throw exception from my EL method and handling exceptions with my custom
exception handler.
//Exception class
public class MyException extends RuntimeException{
}
//Bean action method
//Using from #{bean.log} in a page
public String log(){
if(ok){
throw new MyException();
}
}
I write custom exception handler with wrapped semantic.
public class MyExceptionHandler extends ExceptionHandlerWrapper{
public void handle(){
.....................
ExceptionQueuedEvent event = i.next();
ExceptionQueuedEventContext context =
(ExceptionQueuedEventContext) event
.getSource();
Throwable t = context.getException();
Throeable cause = getRootCause(t); --> But it does not
give MyException, it gives ELEvaluationException!!!!
...............
}
}
Probiem is that
http://svn.apache.org/repos/asf/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/context/ExceptionHandlerImpl.java
# getRootCause compare classes with equals(), but must use isAssignableFrom().
//Current Implementation
if (!clazz.equals(FacesException.class) &&
!clazz.equals(ELException.class))
{
return t;
}
//I think it must be
if(!FacesException.isAssignableFrom(clazz) &&
!ELException.isAssignableFrom(clazz)){
return t;
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.