Index: trunk/src/org/openstreetmap/josm/data/coor/QuadTiling.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/coor/QuadTiling.java	(revision 3157)
+++ trunk/src/org/openstreetmap/josm/data/coor/QuadTiling.java	(revision 3158)
@@ -69,5 +69,5 @@
     {
         //return Math.round((lon + 180.0) * QuadBuckets.WORLD_PARTS / 360.0)-1;
-        long ret = (long)Math.floor((lon + 180.0) * WORLD_PARTS / 360.0);
+        long ret = (long)((lon + 180.0) * WORLD_PARTS / 360.0);
         if (ret == WORLD_PARTS) {
             ret--;
@@ -78,5 +78,5 @@
     {
         //return Math.round((lat + 90.0) * QuadBuckets.WORLD_PARTS / 180.0)-1;
-        long ret = (long)Math.floor((lat + 90.0) * WORLD_PARTS / 180.0);
+        long ret = (long)((lat + 90.0) * WORLD_PARTS / 180.0);
         if (ret == WORLD_PARTS) {
             ret--;
Index: trunk/src/org/openstreetmap/josm/data/osm/Storage.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/Storage.java	(revision 3157)
+++ trunk/src/org/openstreetmap/josm/data/osm/Storage.java	(revision 3158)
@@ -82,5 +82,5 @@
  * assert things.get(new Thing(3)) == fk.get(3);
  * </pre></li>
-*
+ *
  *
  * @author nenik
@@ -114,8 +114,10 @@
 
     // --------------- Collection implementation ------------------------
+    @Override
     public int size() {
         return size;
     }
 
+    @Override
     public Iterator<T> iterator() {
         return new Iter();
@@ -129,5 +131,5 @@
     public @Override boolean add(T t) {
         T orig = putUnique(t);
-        return orig != t;
+        return orig == t;
     }
 
@@ -140,10 +142,14 @@
         modCount++;
         size = 0;
-        for (int i = 0; i<data.length; i++) data[i] = null;
+        for (int i = 0; i<data.length; i++) {
+            data[i] = null;
+        }
     }
 
     public @Override int hashCode() {
         int h = 0;
-        for (T t : this) h += hash.getHashCode(t);
+        for (T t : this) {
+            h += hash.getHashCode(t);
+        }
         return h;
     }
@@ -220,7 +226,6 @@
         int bucket = hcode & mask;
         while ((entry = (T)data[bucket]) != null) {
-            if (ha.equals(key, entry)) {
+            if (ha.equals(key, entry))
                 return bucket;
-            }
             bucket = (bucket+1) & mask;
         }
@@ -265,7 +270,11 @@
 
             for (Object o : data) {
-                if (o == null) continue;
+                if (o == null) {
+                    continue;
+                }
                 int bucket = rehash(hash.getHashCode((T)o)) & nMask;
-                while (big[bucket] != null) bucket = (bucket+1) & nMask;
+                while (big[bucket] != null) {
+                    bucket = (bucket+1) & nMask;
+                }
                 big[bucket] = o;
             }
@@ -292,5 +301,5 @@
         };
     }
-/*
+    /*
     public static <O> Hash<O,O> identityHash() {
         return new Hash<O,O>() {
@@ -303,5 +312,5 @@
         };
     }
-*/
+     */
 
     private class FMap<K> implements Map<K,T> {
@@ -350,6 +359,7 @@
                 Storage.this.addAll(((Storage.FMap)m).values());
             } else {
-                for (Map.Entry<? extends K, ? extends T> e : m.entrySet())
+                for (Map.Entry<? extends K, ? extends T> e : m.entrySet()) {
                     put(e.getKey(), e.getValue());
+                }
             }
         }
@@ -402,5 +412,7 @@
         private void align() {
             if (mods != modCount) throw new ConcurrentModificationException();
-            while (slot < data.length && data[slot] == null) slot++;
+            while (slot < data.length && data[slot] == null) {
+                slot++;
+            }
         }
     }
