[
https://issues.apache.org/jira/browse/WICKET-3548?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Igor Vaynberg resolved WICKET-3548.
-----------------------------------
Resolution: Fixed
Fix Version/s: 1.5-RC3
1.4.17
Assignee: Igor Vaynberg
> Wrong exception type when readResolve fails.
> --------------------------------------------
>
> Key: WICKET-3548
> URL: https://issues.apache.org/jira/browse/WICKET-3548
> Project: Wicket
> Issue Type: Bug
> Reporter: Maarten Billemont
> Assignee: Igor Vaynberg
> Fix For: 1.4.17, 1.5-RC3
>
>
> When readResolve in LazyInitProxyFactory fails because the type cannot be
> found, it dumps the real exception (ClassNotFoundException) and instead
> throws another one:
> throw new InvalidClassException(type, "could
> not resolve class [" + type +
> "] when deserializing proxy");
> The InvalidClassException is an invalid exception to throw in this case.
> Ref. the JavaDoc for this exception:
> * Thrown when the Serialization runtime detects one of the following
> * problems with a Class.
> * <UL>
> * <LI> The serial version of the class does not match that of the class
> * descriptor read from the stream
> * <LI> The class contains unknown datatypes
> * <LI> The class does not have an accessible no-arg constructor
> * </UL>
> The error is not caused by the type class being outdated, containing unknown
> datatypes or having no no-arg constructor. The developer is mislead into
> thinking the problem is actually something else.
> Additionally, the real cause is masked and the real exception (found in "e"),
> is thrown away. Instead, this method should throw a RuntimeException passing
> e as the cause. Perhaps RuntimeException itself or an InvalidStateException.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira