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 Thomas Börkel <tb...@ap-ag.com> on 2002/03/06 14:44:32 UTC

Bugfix and performance enhancement for WSDL generation (ClassRep.java)

HI!

Some days ago, I have posted benchmarks for bcel and tt-bytecode in the user mailinglist. Any comments on this?


Also, both algorithms in Axis (old bcel and new tt-bytecode) have the same flaw, if for example one parameter is a String.


Consider this method signature:

  public String parameterTest(short s, int i, double d, String t, boolean b)


Now, both algorithms cannot find out the name of the String parameter, because there is a gap in the local var table. Instead, the boolean parameter gets the name of the String parameter. So Axis, sees the names like this:

{s, i, d, null, t}


And so, in the WSDL, it's

parameterTest(s, i, d, in3, t)


I have fixed this in my benchmark and also in yesterday's ClassRep.java. I made also the changes for better performance of tt-bytecode, although it still takes twice as long as bcel (but it's MUCH faster than before). I don't know, if you want to integrate the performance enhancement, because it's a little bit kludgy. See for yourself.


Please find attached:
- GetParamBench3.java (my benchmark, including bugfix and performance enhancement)
- ClassRep1.java (version including the bugfix)
- ClassRep2.java (version including the bugfix and performance enhancement)

Regards,
Thomas