Petter M�hl�n writes:
 > Hmm. This seems to be a bug in jde.util.ClassPathZip.load():
 > 
 > 
 >     void load() throws IOException {
 >         ZipFile zipFile = new ZipFile(zipOrJar);
 >         Enumeration enum = zipFile.entries();
 >         while (enum.hasMoreElements()) {
 >             ZipEntry zipEntry = (ZipEntry)enum.nextElement();
 >             String current = zipEntry.getName();
 >             if (current.toLowerCase().endsWith(".class")) {
 >                 current = current.substring(0, current.length() - 6);
 >                 current = current.replace('/', '.');
 >                 current = current.replace('\\', '.');
 >                 super.addClass(current);
 >             }
 >         }
 >         setLoaded(true);
 >     }
 > 
 > The inner-class .class file will be called "class$innerClass.class", leading
 > to the problem Henrik describes, so maybe another substitution should be
 > added:
 > 
 >                 current = current.replace('$', '.');
 > 
 > My JDE installation is lagging behind, so I haven't tested it, but this
 > seems to make sense. If so, the same change should be made to
 > jde.util.ClassPathDir.addRecursively.
 > 

Hi Petter,

The changes you suggest make sense to me so I made them in the CVS repository.
They will appear in the next release. I'll rely on Henrik to check then if
they fix the problem.

- Paul

 > / Petter
 > 
 > -----Original Message-----
 > From: Henrik Kj�r [mailto:[EMAIL PROTECTED]]
 > Sent: den 29 november 2002 14:51
 > To: [EMAIL PROTECTED]
 > Subject: jde-wiz-implement-interface
 > 
 > 
 > There is a bug in the interface wizard - it insert $ when the interface to
 > be implemented
 > uses inner classes.
 > 
 > Example:
 > My interface -
 > import path.Class;
 > 
 > public interface MyInterface {
 >  void myMethod(Class.innerClass)
 > }
 > will result in
 > import path.Class$innerClass;
 > MyInterfaceImpl implement MyInterface {
 > public void(Class$innerClass class$innerClass) {
 > }
 > 
 > Henrik Kj�r

Reply via email to