Sven Linstaedt created DELTASPIKE-723:
-----------------------------------------
Summary: Exception bypassing on JSF conversion errors
Key: DELTASPIKE-723
URL: https://issues.apache.org/jira/browse/DELTASPIKE-723
Project: DeltaSpike
Issue Type: Bug
Affects Versions: 1.0.1
Reporter: Sven Linstaedt
Priority: Blocker
org.apache.deltaspike.jsf.impl.injection.proxy.DelegatingMethodHandler is not
catching java.lang.reflect.InvocationTargetException from method invocations
causing any kind of exceptions from converters and validators being thrown
wrapped in InvocationTargetException.
Especially when in comes to conversion this will cause
javax.faces.component.UIInput.validate(FacesContext) fail to catch
javax.faces.convert.ConverterException from any converters.
To make things worse (and me scratching my head for several hours while trying
to find out, how this "ConverterException" can bypass the before mentioned
catch block from UIInput) BridgeExceptionHandlerWrapper returned by
DeltaSpikeFacesContextWrapper is unfortunately only returning the unwrapped
ConverterException to the application, so any trace of this catch block
bypassing is cleaned up and therefore perfectly hidden from the application.
To sum up: Current deltaspike releases > 1.0.0 are causing JSF based
applications to fail on conversion errors, making these releases unusable.
Possible solution: Catching the InvocationTargetException in
DelegatingMethodHandler and rethrowing it's target exception will probably do
the job, but as I peeked into the code MethodHandlerProxy and
DelegatingMethodHandler seem to be a temporary solution, so maybe there is
already another solution for this problem.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)