Currently we have 3 versions of rmic kicking around:
1. the old version, still in libgcj
2. the tools version, which uses ASM. This was rewritten
specifically to improve performance -- a feature which must
3. the new version, in classpath/tools
We need to delete 1, and merge 2 and 3. In particular we
should probably import ASM into classpath/tools/external or
Confirmed, I thought I saw another bug just like this before.
Yes PR 25414, which is for deleting 1. :).
The used ASM version is very old and not compatible with the recent version. While merging itself is relatively easy, it would be good to upgrade the code for using the recent version of that package. Then we maybe could use the ASM in some other parts of Classpath, if it is already accepted. Sticking to the obsolete version is somehow less attractive.
I would also like to point that the fastest alternative is not to use the RMIC at all. Since JDK 1.5 both stubs and skeletons are no longer needed, despite this may require some minor code modifications.
Yeah, I agree, updating ASM would be good.
And the 1.5 plan of not having an rmic also sounds good.
As to using ASM in other parts of classpath: I think due to
class loader issues we can only use it in the tools.
Well, or we could make a copy and refactor it into a different package.
On 2005-12-14, ASM 2.2.1 and 3.0-beta were released. Moving to 2.2.1 requires changing about 30 lines of code in RMIC.java. The changes are mostly mechnical. From there, moving to 3.0 will require changing another two lines of code. I will post the patch for 2.2.1 tomorrow after doing a little bit of testing. Once 3.0 is final, we can move to that.
Great! The ASM maybe could also generate the RMI-IIOP classes in the future.
This was fixed.