* gnu/packages/patches/java-jeromq-fix-tests.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/java.scm (java-jeromq)[source](patches): Add it.
[arguments](#test-exclude): Disable more failing tests.
---
gnu/local.mk | 1 +
gnu/packages/java.scm| 11 +-
gnu/packages/patches/java-jeromq-fix-tests.patch | 253 +++
3 files changed, 263 insertions(+), 2 deletions(-)
create mode 100644 gnu/packages/patches/java-jeromq-fix-tests.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 9684d949f..2bae3660c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -782,6 +782,7 @@ dist_patch_DATA =
\
%D%/packages/patches/intltool-perl-compatibility.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch\
%D%/packages/patches/jacal-fix-texinfo.patch \
+ %D%/packages/patches/java-jeromq-fix-tests.patch \
%D%/packages/patches/java-powermock-fix-java-files.patch \
%D%/packages/patches/java-xerces-bootclasspath.patch \
%D%/packages/patches/java-xerces-build_dont_unzip.patch \
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 0f8c04e8b..85a8c9b3a 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -8117,7 +8117,8 @@ protocol-independent framework to build mail and
messaging applications.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
-"1gxkp7lv2ahymgrqdw94ncq54bmp4m4sw5m1x9gkp7l5bxn0xsyj"
+"1gxkp7lv2ahymgrqdw94ncq54bmp4m4sw5m1x9gkp7l5bxn0xsyj"))
+ (patches (search-patches "java-jeromq-fix-tests.patch"
(build-system ant-build-system)
(arguments
`(#:jar-name "java-jeromq.jar"
@@ -8131,7 +8132,13 @@ protocol-independent framework to build mail and
messaging applications.")
;; Failures
"**/DealerSpecTest.java"
"**/CustomDecoderTest.java"
- "**/CustomEncoderTest.java")))
+ "**/CustomEncoderTest.java"
+ "**/ConnectRidTest.java"
+ "**/ReqSpecTest.java"
+ "**/PushPullSpecTest.java"
+ "**/PubSubHwmTest.java"
+ "**/RouterSpecTest.java"
+ "**/ProxyTest.java")))
(inputs
`(("java-jnacl" ,java-jnacl)))
(native-inputs
diff --git a/gnu/packages/patches/java-jeromq-fix-tests.patch
b/gnu/packages/patches/java-jeromq-fix-tests.patch
new file mode 100644
index 0..5466b9270
--- /dev/null
+++ b/gnu/packages/patches/java-jeromq-fix-tests.patch
@@ -0,0 +1,253 @@
+From 5803aadd3f209eba1ffbb2cf7bf16778019dbee1 Mon Sep 17 00:00:00 2001
+From: fredoboulo
+Date: Fri, 23 Feb 2018 23:55:57 +0100
+Subject: [PATCH] Fix #524 : V1 and V2 protocol downgrades handle received data
+ in handshake buffer
+
+This patch is upstream pull request, see:
+https://gihub.com/zeromq/jeromq/pull/527.
+
+It is merged on commit c2afa9c, and we can drop it on the
+0.4.4 release.
+
+---
+ src/main/java/zmq/io/StreamEngine.java| 21 ++--
+ src/test/java/zmq/io/AbstractProtocolVersion.java | 41 +--
+ src/test/java/zmq/io/V0ProtocolTest.java | 12 +++
+ src/test/java/zmq/io/V1ProtocolTest.java | 16 +++--
+ src/test/java/zmq/io/V2ProtocolTest.java | 16 +++--
+ 5 files changed, 81 insertions(+), 25 deletions(-)
+
+diff --git a/src/main/java/zmq/io/StreamEngine.java
b/src/main/java/zmq/io/StreamEngine.java
+index b8933c92..fe2f2d8d 100644
+--- a/src/main/java/zmq/io/StreamEngine.java
b/src/main/java/zmq/io/StreamEngine.java
+@@ -816,9 +816,7 @@ private boolean handshake()
+ assert (bufferSize == headerSize);
+
+ // Make sure the decoder sees the data we have already received.
+-greetingRecv.flip();
+-inpos = greetingRecv;
+-insize = greetingRecv.limit();
++decodeDataAfterHandshake(0);
+
+ // To allow for interoperability with peers that do not forward
+ // their subscriptions, we inject a phantom subscription message
+@@ -846,6 +844,8 @@ else if (greetingRecv.get(revisionPos) ==
Protocol.V1.revision) {
+ }
+ encoder = new V1Encoder(errno, Config.OUT_BATCH_SIZE.getValue());
+ decoder = new V1Decoder(errno, Config.IN_BATCH_SIZE.getValue(),
options.maxMsgSize, options.allocator);
++
++decodeDataAfterHandshake(V2_GREETING_SIZE);
+ }
+ else if (greetingRecv.get(revisionPos) == Protocol.V2.revision) {
+ // ZMTP/2.0 framing.
+@@ -859,6 +859,8 @@ else if (greetingRecv.get(revisionPos) ==
Protocol.V2.revision) {
+ }
+ encoder = new V2Encoder(errno, Config.OUT_BATCH_SIZE.getValue());
+ decoder = new V2Decoder(errno,