aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/java.scm4
-rw-r--r--gnu/packages/patches/java-commons-collections-fix-java8.patch299
3 files changed, 303 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 9b832e3a39..66f802a078 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -805,6 +805,7 @@ dist_patch_DATA = \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/jacal-fix-texinfo.patch \
%D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \
+ %D%/packages/patches/java-commons-collections-fix-java8.patch \
%D%/packages/patches/java-jeromq-fix-tests.patch \
%D%/packages/patches/java-powermock-fix-java-files.patch \
%D%/packages/patches/java-simple-xml-fix-tests.patch \
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 03d58fc7b8..f23572a55a 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -4032,7 +4032,9 @@ are many features, including:
"commons-collections-" version "-src.tar.gz"))
(sha256
(base32
- "055r51a5lfc3z7rkxnxmnn1npvkvda7636hjpm4qk7cnfzz98387"))))
+ "055r51a5lfc3z7rkxnxmnn1npvkvda7636hjpm4qk7cnfzz98387"))
+ (patches
+ (search-patches "java-commons-collections-fix-java8.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments java-commons-collections4)
((#:phases phases)
diff --git a/gnu/packages/patches/java-commons-collections-fix-java8.patch b/gnu/packages/patches/java-commons-collections-fix-java8.patch
new file mode 100644
index 0000000000..322fd7f699
--- /dev/null
+++ b/gnu/packages/patches/java-commons-collections-fix-java8.patch
@@ -0,0 +1,299 @@
+From e760d181abd20ecb98654af63faec7b2a4d61189 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= <boskovits@gmail.com>
+Date: Mon, 25 Jun 2018 15:02:25 +0200
+Subject: [PATCH] Rename removes in maps to fix java8.
+
+* src/java/org/apache/commons/collections/MultiHashMap.java:
+Rename "V MultiHashMap#remove(K, V)"
+to "boolean MulitHashMap#removeMapping(K, V)".
+* src/java/org/apache/commons/collections/MultiMap.java:
+Rename "V MultiMap#remove(K, V)"
+to "boolean MultiMap#removeMapping(K, V)".
+* src/java/org/apache/commons/collections/map/MultiKeyMap.java:
+Rename "V MultiKeyMap#remove(...)"
+to "V MultiKeyMap#removeMultiKey(...)".
+* src/java/org/apache/commons/collections/map/MultiValueMap.java:
+Rename "V MultiValueMap#remove(K, V)"
+to "boolean MultiValueMap#removeMapping(K, V)".
+* src/test/org/apache/commons/collections/TestMultiHashMap.java:
+Adjust accordingly.
+* src/test/org/apache/commons/collections/map/TestMultiKeyMap.java:
+Adjust accordingly.
+* src/test/org/apache/commons/collections/map/TestMultiValueMap.java:
+Adjust accordingly.
+---
+ .../commons/collections/MultiHashMap.java | 8 ++++----
+ .../apache/commons/collections/MultiMap.java | 2 +-
+ .../commons/collections/map/MultiKeyMap.java | 8 ++++----
+ .../commons/collections/map/MultiValueMap.java | 8 ++++----
+ .../commons/collections/TestMultiHashMap.java | 16 ++++++++--------
+ .../collections/map/TestMultiKeyMap.java | 16 ++++++++--------
+ .../collections/map/TestMultiValueMap.java | 18 +++++++++---------
+ 7 files changed, 38 insertions(+), 38 deletions(-)
+
+diff --git a/src/java/org/apache/commons/collections/MultiHashMap.java b/src/java/org/apache/commons/collections/MultiHashMap.java
+index 7fec9af..482ecbd 100644
+--- a/src/java/org/apache/commons/collections/MultiHashMap.java
++++ b/src/java/org/apache/commons/collections/MultiHashMap.java
+@@ -331,21 +331,21 @@ public class MultiHashMap extends HashMap implements MultiMap {
+ * @param item the value to remove
+ * @return the value removed (which was passed in), null if nothing removed
+ */
+- public Object remove(Object key, Object item) {
++ public boolean removeMapping(Object key, Object item) {
+ Collection valuesForKey = getCollection(key);
+ if (valuesForKey == null) {
+- return null;
++ return false;
+ }
+ boolean removed = valuesForKey.remove(item);
+ if (removed == false) {
+- return null;
++ return false;
+ }
+ // remove the list if it is now empty
+ // (saves space, and allows equals to work)
+ if (valuesForKey.isEmpty()){
+ remove(key);
+ }
+- return item;
++ return true;
+ }
+
+ /**
+diff --git a/src/java/org/apache/commons/collections/MultiMap.java b/src/java/org/apache/commons/collections/MultiMap.java
+index be9455b..fe54234 100644
+--- a/src/java/org/apache/commons/collections/MultiMap.java
++++ b/src/java/org/apache/commons/collections/MultiMap.java
+@@ -66,7 +66,7 @@ public interface MultiMap extends Map {
+ * @throws ClassCastException if the key or value is of an invalid type
+ * @throws NullPointerException if the key or value is null and null is invalid
+ */
+- public Object remove(Object key, Object item);
++ public boolean removeMapping(Object key, Object item);
+
+ //-----------------------------------------------------------------------
+ /**
+diff --git a/src/java/org/apache/commons/collections/map/MultiKeyMap.java b/src/java/org/apache/commons/collections/map/MultiKeyMap.java
+index 9e3e02d..0b99b65 100644
+--- a/src/java/org/apache/commons/collections/map/MultiKeyMap.java
++++ b/src/java/org/apache/commons/collections/map/MultiKeyMap.java
+@@ -197,7 +197,7 @@ public class MultiKeyMap
+ * @param key2 the second key
+ * @return the value mapped to the removed key, null if key not in map
+ */
+- public Object remove(Object key1, Object key2) {
++ public Object removeMultiKey(Object key1, Object key2) {
+ int hashCode = hash(key1, key2);
+ int index = map.hashIndex(hashCode, map.data.length);
+ AbstractHashedMap.HashEntry entry = map.data[index];
+@@ -327,7 +327,7 @@ public class MultiKeyMap
+ * @param key3 the third key
+ * @return the value mapped to the removed key, null if key not in map
+ */
+- public Object remove(Object key1, Object key2, Object key3) {
++ public Object removeMultiKey(Object key1, Object key2, Object key3) {
+ int hashCode = hash(key1, key2, key3);
+ int index = map.hashIndex(hashCode, map.data.length);
+ AbstractHashedMap.HashEntry entry = map.data[index];
+@@ -467,7 +467,7 @@ public class MultiKeyMap
+ * @param key4 the fourth key
+ * @return the value mapped to the removed key, null if key not in map
+ */
+- public Object remove(Object key1, Object key2, Object key3, Object key4) {
++ public Object removeMultiKey(Object key1, Object key2, Object key3, Object key4) {
+ int hashCode = hash(key1, key2, key3, key4);
+ int index = map.hashIndex(hashCode, map.data.length);
+ AbstractHashedMap.HashEntry entry = map.data[index];
+@@ -617,7 +617,7 @@ public class MultiKeyMap
+ * @param key5 the fifth key
+ * @return the value mapped to the removed key, null if key not in map
+ */
+- public Object remove(Object key1, Object key2, Object key3, Object key4, Object key5) {
++ public Object removeMultiKey(Object key1, Object key2, Object key3, Object key4, Object key5) {
+ int hashCode = hash(key1, key2, key3, key4, key5);
+ int index = map.hashIndex(hashCode, map.data.length);
+ AbstractHashedMap.HashEntry entry = map.data[index];
+diff --git a/src/java/org/apache/commons/collections/map/MultiValueMap.java b/src/java/org/apache/commons/collections/map/MultiValueMap.java
+index f44999b..86eaeb0 100644
+--- a/src/java/org/apache/commons/collections/map/MultiValueMap.java
++++ b/src/java/org/apache/commons/collections/map/MultiValueMap.java
+@@ -153,19 +153,19 @@ public class MultiValueMap extends AbstractMapDecorator implements MultiMap {
+ * @param value the value to remove
+ * @return the value removed (which was passed in), null if nothing removed
+ */
+- public Object remove(Object key, Object value) {
++ public boolean removeMapping(Object key, Object value) {
+ Collection valuesForKey = getCollection(key);
+ if (valuesForKey == null) {
+- return null;
++ return false;
+ }
+ boolean removed = valuesForKey.remove(value);
+ if (removed == false) {
+- return null;
++ return false;
+ }
+ if (valuesForKey.isEmpty()) {
+ remove(key);
+ }
+- return value;
++ return true;
+ }
+
+ /**
+diff --git a/src/test/org/apache/commons/collections/TestMultiHashMap.java b/src/test/org/apache/commons/collections/TestMultiHashMap.java
+index eca833a..a1de943 100644
+--- a/src/test/org/apache/commons/collections/TestMultiHashMap.java
++++ b/src/test/org/apache/commons/collections/TestMultiHashMap.java
+@@ -217,7 +217,7 @@ public class TestMultiHashMap extends AbstractTestMap {
+ MultiHashMap one = new MultiHashMap();
+ Integer value = new Integer(1);
+ one.put("One", value);
+- one.remove("One", value);
++ one.removeMapping("One", value);
+
+ MultiHashMap two = new MultiHashMap();
+ assertEquals(two, one);
+@@ -269,7 +269,7 @@ public class TestMultiHashMap extends AbstractTestMap {
+ assertEquals(4, map.totalSize());
+ map.remove("A");
+ assertEquals(3, map.totalSize());
+- map.remove("B", "BC");
++ map.removeMapping("B", "BC");
+ assertEquals(2, map.totalSize());
+ }
+
+@@ -292,7 +292,7 @@ public class TestMultiHashMap extends AbstractTestMap {
+ map.remove("A");
+ assertEquals(0, map.size("A"));
+ assertEquals(3, map.size("B"));
+- map.remove("B", "BC");
++ map.removeMapping("B", "BC");
+ assertEquals(0, map.size("A"));
+ assertEquals(2, map.size("B"));
+ }
+@@ -464,11 +464,11 @@ public class TestMultiHashMap extends AbstractTestMap {
+ map.put("A", "AA");
+ map.put("A", "AB");
+ map.put("A", "AC");
+- assertEquals(null, map.remove("C", "CA"));
+- assertEquals(null, map.remove("A", "AD"));
+- assertEquals("AC", map.remove("A", "AC"));
+- assertEquals("AB", map.remove("A", "AB"));
+- assertEquals("AA", map.remove("A", "AA"));
++ assertEquals(false, map.removeMapping("C", "CA"));
++ assertEquals(false, map.removeMapping("A", "AD"));
++ assertEquals(true, map.removeMapping("A", "AC"));
++ assertEquals(true, map.removeMapping("A", "AB"));
++ assertEquals(true, map.removeMapping("A", "AA"));
+ assertEquals(new MultiHashMap(), map);
+ }
+
+diff --git a/src/test/org/apache/commons/collections/map/TestMultiKeyMap.java b/src/test/org/apache/commons/collections/map/TestMultiKeyMap.java
+index b1ee3d0..b18f480 100644
+--- a/src/test/org/apache/commons/collections/map/TestMultiKeyMap.java
++++ b/src/test/org/apache/commons/collections/map/TestMultiKeyMap.java
+@@ -315,34 +315,34 @@ public class TestMultiKeyMap extends AbstractTestIterableMap {
+ switch (key.size()) {
+ case 2:
+ assertEquals(true, multimap.containsKey(key.getKey(0), key.getKey(1)));
+- assertEquals(value, multimap.remove(key.getKey(0), key.getKey(1)));
++ assertEquals(value, multimap.removeMultiKey(key.getKey(0), key.getKey(1)));
+ assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1)));
+ assertEquals(size - 1, multimap.size());
+- assertEquals(null, multimap.remove(key.getKey(0), key.getKey(1)));
++ assertEquals(null, multimap.removeMultiKey(key.getKey(0), key.getKey(1)));
+ assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1)));
+ break;
+ case 3:
+ assertEquals(true, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2)));
+- assertEquals(value, multimap.remove(key.getKey(0), key.getKey(1), key.getKey(2)));
++ assertEquals(value, multimap.removeMultiKey(key.getKey(0), key.getKey(1), key.getKey(2)));
+ assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2)));
+ assertEquals(size - 1, multimap.size());
+- assertEquals(null, multimap.remove(key.getKey(0), key.getKey(1), key.getKey(2)));
++ assertEquals(null, multimap.removeMultiKey(key.getKey(0), key.getKey(1), key.getKey(2)));
+ assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2)));
+ break;
+ case 4:
+ assertEquals(true, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3)));
+- assertEquals(value, multimap.remove(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3)));
++ assertEquals(value, multimap.removeMultiKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3)));
+ assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3)));
+ assertEquals(size - 1, multimap.size());
+- assertEquals(null, multimap.remove(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3)));
++ assertEquals(null, multimap.removeMultiKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3)));
+ assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3)));
+ break;
+ case 5:
+ assertEquals(true, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4)));
+- assertEquals(value, multimap.remove(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4)));
++ assertEquals(value, multimap.removeMultiKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4)));
+ assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4)));
+ assertEquals(size - 1, multimap.size());
+- assertEquals(null, multimap.remove(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4)));
++ assertEquals(null, multimap.removeMultiKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4)));
+ assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4)));
+ break;
+ default:
+diff --git a/src/test/org/apache/commons/collections/map/TestMultiValueMap.java b/src/test/org/apache/commons/collections/map/TestMultiValueMap.java
+index b9a5ac8..9ecc269 100644
+--- a/src/test/org/apache/commons/collections/map/TestMultiValueMap.java
++++ b/src/test/org/apache/commons/collections/map/TestMultiValueMap.java
+@@ -161,7 +161,7 @@ public class TestMultiValueMap extends TestCase {
+ MultiValueMap one = new MultiValueMap();
+ Integer value = new Integer(1);
+ one.put("One", value);
+- one.remove("One", value);
++ one.removeMapping("One", value);
+
+ MultiValueMap two = new MultiValueMap();
+ assertEquals(two, one);
+@@ -187,7 +187,7 @@ public class TestMultiValueMap extends TestCase {
+ assertEquals(4, map.totalSize());
+ map.remove("A");
+ assertEquals(3, map.totalSize());
+- map.remove("B", "BC");
++ map.removeMapping("B", "BC");
+ assertEquals(2, map.totalSize());
+ }
+
+@@ -204,7 +204,7 @@ public class TestMultiValueMap extends TestCase {
+ assertEquals(2, map.size());
+ map.remove("A");
+ assertEquals(2, map.size());
+- map.remove("B", "BC");
++ map.removeMapping("B", "BC");
+ assertEquals(2, map.size());
+ }
+
+@@ -227,7 +227,7 @@ public class TestMultiValueMap extends TestCase {
+ map.remove("A");
+ assertEquals(0, map.size("A"));
+ assertEquals(3, map.size("B"));
+- map.remove("B", "BC");
++ map.removeMapping("B", "BC");
+ assertEquals(0, map.size("A"));
+ assertEquals(2, map.size("B"));
+ }
+@@ -338,11 +338,11 @@ public class TestMultiValueMap extends TestCase {
+ map.put("A", "AA");
+ map.put("A", "AB");
+ map.put("A", "AC");
+- assertEquals(null, map.remove("C", "CA"));
+- assertEquals(null, map.remove("A", "AD"));
+- assertEquals("AC", map.remove("A", "AC"));
+- assertEquals("AB", map.remove("A", "AB"));
+- assertEquals("AA", map.remove("A", "AA"));
++ assertEquals(false, map.removeMapping("C", "CA"));
++ assertEquals(false, map.removeMapping("A", "AD"));
++ assertEquals(true, map.removeMapping("A", "AC"));
++ assertEquals(true, map.removeMapping("A", "AB"));
++ assertEquals(true, map.removeMapping("A", "AA"));
+ assertEquals(new MultiValueMap(), map);
+ }
+
+--
+2.18.0
+