[ 
https://issues.apache.org/jira/browse/AXIS2-4443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12734993#action_12734993
 ] 

Detelin Yordanov commented on AXIS2-4443:
-----------------------------------------

Using Class#getSimpleName() leads to an erroneous schema when there are two 
classes in a package, which both contain an inner class definition with one and 
the same name, e.g.:

class Mother {
    public class Child {

    }
}


class Father{
    public class Child {

    }
}

Since Class#getSimpleName() returns just the name of the class, in both cases 
it will return "Child" and the schema generation will produce
two complex types with one and the same name. Such XML schema is not valid, so 
the whole service is rendered inaccessible.


> Schema generation for inner classes is not backward compatible
> --------------------------------------------------------------
>
>                 Key: AXIS2-4443
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4443
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.5
>            Reporter: Detelin Yordanov
>
> In Axis2 1.5  schema types generated for inner classes have just the name of 
> the class, while in Axis2 1.4.1 the name of the type incorporated the name of 
> the parent class, e.g.
> class Parent {
>     class Inner {
>     }
> }
> Axis2 1.4.1 created a complex type named "Parent_Inner" for the Inner class 
> (it was replacing the dollar character in "Parent$Inner" with an underscore), 
> while Axis2 1.5 creates just "Inner" type.
> The reason must be in using Class#getSimpleName(), this method does not 
> return the parent class prefix as the annogen's JClass#getSimpleName() did in 
> Axis2 1.4.1.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to