codeaudit / dkpro-core-asl

Automatically exported from code.google.com/p/dkpro-core-asl
0 stars 0 forks source link

Problems with WeakHashSet #120

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
de.tudarmstadt.ukp.dkpro.core.castransformation.alignment.WeakHashSet has two 
problems:

1. remove(E) doesn't override remove(Object).

2. it doesn't override contains(Object) and so will iterate over all keys when 
this method is called.

Currently neither method seems to be called anywhere, but if someone uses 
WeakHashSet later without looking at the implementation, they could lead to 
severe performance problems.

Patch:

Index: 
src/main/java/de/tudarmstadt/ukp/dkpro/core/castransformation/alignment/WeakHash
Set.java
===================================================================
--- 
src/main/java/de/tudarmstadt/ukp/dkpro/core/castransformation/alignment/WeakHash
Set.java    (revision 1149)
+++ 
src/main/java/de/tudarmstadt/ukp/dkpro/core/castransformation/alignment/WeakHash
Set.java    (working copy)
@@ -43,11 +43,12 @@
        return beforeSize != size();
    }

+   @Override
    public
-   void remove(
-           final E o)
+   boolean remove(
+           final Object o)
    {
-       data.remove(o);
+       return data.remove(o) != null;
    }

    @Override
@@ -63,4 +64,10 @@
    {
        return data.size();
    }
+   
+   @Override
+   public boolean contains(
+           final Object o) {
+       return data.containsKey(o);
+   }
 }

Original issue reported on code.google.com by alexey.v...@gmail.com on 11 Mar 2013 at 7:12

GoogleCodeExporter commented 9 years ago
Thanks for reporting!

Original comment by richard.eckart on 10 Apr 2013 at 6:06

GoogleCodeExporter commented 9 years ago

Original comment by richard.eckart on 24 Jun 2013 at 10:49

GoogleCodeExporter commented 9 years ago
This issue was closed by revision r1518.

Original comment by richard.eckart on 30 Jun 2013 at 12:31