This is an automated email from the ASF dual-hosted git repository. toulmean pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-tuweni.git
commit d806b1aca890ee8be99733815eeef6e671102bde Author: Antoine Toulme <[email protected]> AuthorDate: Fri May 31 16:53:21 2019 -0700 Delegate writing to file to a specific thread. Write the message bytes as a hex string --- gossip/src/main/java/org/apache/tuweni/gossip/GossipApp.java | 9 ++++++--- .../java/org/apache/tuweni/gossip/GossipIntegrationTest.java | 11 +++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/gossip/src/main/java/org/apache/tuweni/gossip/GossipApp.java b/gossip/src/main/java/org/apache/tuweni/gossip/GossipApp.java index f92481b..8866eee 100644 --- a/gossip/src/main/java/org/apache/tuweni/gossip/GossipApp.java +++ b/gossip/src/main/java/org/apache/tuweni/gossip/GossipApp.java @@ -84,6 +84,7 @@ public final class GossipApp { private final PrintStream outStream; private final VertxGossipServer server; private final HttpServer rpcServer; + private final ExecutorService fileWriter = Executors.newSingleThreadExecutor(); GossipApp( Vertx vertx, @@ -209,14 +210,16 @@ public final class GossipApp { errStream.println("RPC server could not stop: " + e.getMessage()); terminateFunction.run(); } + + fileWriter.shutdown(); } private void readMessage(String messageLog, PrintStream err, Bytes bytes) { - synchronized (this) { + fileWriter.submit(() -> { ObjectMapper mapper = new ObjectMapper(); ObjectNode node = mapper.createObjectNode(); node.put("timestamp", Instant.now().toString()); - node.put("value", new String(bytes.toArrayUnsafe(), StandardCharsets.UTF_8)); + node.put("value", bytes.toHexString()); try { Path path = Paths.get(messageLog); Files.write( @@ -227,7 +230,7 @@ public final class GossipApp { } catch (IOException e) { err.println(e.getMessage()); } - } + }); } public void publish(Bytes message) { diff --git a/gossip/src/test/java/org/apache/tuweni/gossip/GossipIntegrationTest.java b/gossip/src/test/java/org/apache/tuweni/gossip/GossipIntegrationTest.java index e0418a9..89a9dcb 100644 --- a/gossip/src/test/java/org/apache/tuweni/gossip/GossipIntegrationTest.java +++ b/gossip/src/test/java/org/apache/tuweni/gossip/GossipIntegrationTest.java @@ -19,7 +19,6 @@ import org.apache.tuweni.bytes.Bytes; import org.apache.tuweni.bytes.Bytes32; import org.apache.tuweni.junit.*; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; @@ -114,15 +113,15 @@ class GossipIntegrationTest { List<String> sent = new ArrayList<>(); for (int i = 0; i < 20; i++) { - String message = Bytes32.rightPad(Bytes.ofUnsignedInt(i)).toHexString(); - sent.add(message); + Bytes message = Bytes32.rightPad(Bytes.ofUnsignedInt(i)); + sent.add(message.toHexString()); Thread.sleep(100); client.request(HttpMethod.POST, 10000, "127.0.0.1", "/publish").exceptionHandler(thr -> { throw new RuntimeException(thr); }).handler(resp -> { - }).end(Buffer.buffer(message.getBytes(StandardCharsets.UTF_8))); + }).end(Buffer.buffer(message.toArrayUnsafe())); } List<String> receiver1 = Collections.emptyList(); @@ -162,7 +161,7 @@ class GossipIntegrationTest { receiver2Expected.remove(value); } - assertTrue(receiver1Expected.isEmpty()); - assertTrue(receiver2Expected.isEmpty()); + assertTrue(receiver1Expected.isEmpty(), "Elements left:" + receiver1Expected); + assertTrue(receiver2Expected.isEmpty(), "Elements left:" + receiver2Expected); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
