sbailliez    01/11/18 04:25:55

  Modified:    src/main/org/apache/tools/ant/taskdefs/optional/sitraka/bytecode
                        ClassPathLoader.java
  Log:
  Uh ! Found stupid bugs while doing some code review:
  
  1) classes were indexed by their name instead of their fullname...
  It means that a class X in package Y could shadow class X in package Z. Great 
!
  
  2) I was looking for duplicate not by the key but the value.
  
  Obviouslly it could never work, fortunately due to
  heavy memory usage, I did not used this method in XMLReport.
  
  Revision  Changes    Path
  1.3       +3 -10     
jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/bytecode/ClassPathLoader.java
  
  Index: ClassPathLoader.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/bytecode/ClassPathLoader.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ClassPathLoader.java      2001/10/28 21:30:23     1.2
  +++ ClassPathLoader.java      2001/11/18 12:25:55     1.3
  @@ -151,24 +151,17 @@
                        long t0 = System.currentTimeMillis();
                        ClassFile[] classes = loader.getClasses();
                        long dt = System.currentTimeMillis() - t0;
  -                     System.out.println("" + classes.length + " loaded in " 
+ dt + "ms");
  +                     System.out.println("" + classes.length + " classes 
loaded in " + dt + "ms");
                        for (int j = 0; j < classes.length; j++){
  -                             String name = classes[j].getName();
  +                             String name = classes[j].getFullName();
                                // do not allow duplicates entries to preserve 
'classpath' behavior
                                // first class in wins
  -                             if ( !map.contains(name) ){
  +                             if ( !map.containsKey(name) ){
                                        map.put(name, classes[j]);
                                }
                        }
                }
                return map;
  -     }
  -     
  -     /** dirty little test, should be moved to a testcase */
  -     public static void main(String[] args) throws Exception {
  -             ClassPathLoader cl = new 
ClassPathLoader("e:/jdk/jdk1.3.1/lib/tools.jar;e:/jdk/jdk1.3.1/jre/lib/rt.jar");
  -             Hashtable map = cl.getClasses();
  -             System.out.println("Loaded classes: " + map.size());
        }
        
        /** the loader enumeration that will return loaders */
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to