axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Detelin Yordanov (JIRA)" <>
Subject [jira] Commented: (AXIS2-4443) Schema generation for inner classes is not backward compatible
Date Fri, 24 Jul 2009 09:10:15 GMT


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:
>             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"
> 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.

View raw message