axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Major <jma...@realmsys.com>
Subject Possible bug in BeanDeserializerFactory
Date Thu, 30 Sep 2004 16:23:08 GMT
Hello -

I have BeanDeserializerFactory successfully treating my class as a "JAX-RPC Enum" class, according

to this method in org.apache.axis.utils.JavaUtils:

    /**
     * Determine if the class is a JAX-RPC enum class.
     * An enumeration class is recognized by
     * a getValue() method, a toString() method, a fromString(String) method
     * a fromValue(type) method and the lack
     * of a setValue(type) method
     */
    public static boolean isEnumClass(Class cls) {

(It would be helpful, BTW, if the javadoc included "static" in the method descriptions
above.)

BUT - this code in BeanDeserializerFactory:

        if (deserClass == EnumSerializer.class) {
           return super.getGeneralPurpose(mechanismType);
        }

        return new BeanDeserializer(javaType, xmlType, typeDesc, propertyMap);


fails to treat my class as an enum class every time, because "deserClass" is actually 
EnumDeserializer. If I change it to:
             ^^

       if (deserClass == EnumDeserializer.class) {

the deserialization of the class works fine.
I've pulled out the latest Axis CVS source, and the bug appears to still be there. So:

- Is my diagnosis and fix correct?

- If so, what's the best way to get it into the release quickly? I'm a newbie to the
Apache open source community.

- If so, how did it ever work? My theory is that since most Axis users appear to use java2wsdl
(we 
are not), serialization of enums was taken care of by a generated getDeserializer() function
- but 
that's a shot in the dark - did I hit anything?   ;-)

Thanks for any help you can offer -


John Major
Senior Software Developer
Realm Systems, Inc.
9350 S. 150 East, Suite 950
Sandy, UT 84070
Voice: 208-8100
FAX: 208-8101




Mime
View raw message