You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2003/09/10 20:01:56 UTC
DO NOT REPLY [Bug 23076] New: -
ArryDeserializer does not use proper classloader
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23076>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23076
ArryDeserializer does not use proper classloader
Summary: ArryDeserializer does not use proper classloader
Product: Axis
Version: 1.1
Platform: Other
OS/Version: Other
Status: NEW
Severity: Normal
Priority: Other
Component: Serialization/Deserialization
AssignedTo: axis-dev@ws.apache.org
ReportedBy: holstege@mathling.com
Consider the case where the item class in an array, which is obtained from a
custom type mapper that uses a special classloader. An array of such a class
is not properly handled by the ArrayDeserializer, which reverts to the
system classloader.
The following patch to ArrayDeserializer fixes the problem:
291,294c291,304
< arrayClass = ClassUtils.forName(
< JavaUtils.getLoadableClassName(
< JavaUtils.getTextClassName(arrayItemClass.getName()) +
< dims));
---
> String loadableArrayClassName =
> JavaUtils.getLoadableClassName(
> JavaUtils.getTextClassName( arrayItemClass.getName() ) +
> dims );
> try {
> arrayClass = ClassUtils.forName( loadableArrayClassName,
> true,
> arrayItemClass.
getClassLoader()
> );
> }
> catch ( Exception e )
> {
> arrayClass = ClassUtils.forName( loadableArrayClassName );
> }