X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2Fquelaton%2FClientGetCommandImpl.java;h=0c93fc32772a6112d7f12540ad6bda89fa946c19;hb=9f8674f7ad4b179b3a2cac9a24f1dc6152548bc1;hp=5137c96a8ba2f55bf78bfb71d539db0f60680041;hpb=bbe77c263f9f37b2407a6b5ce2f5e68e11bd9e7c;p=jFCPlib.git diff --git a/src/main/java/net/pterodactylus/fcp/quelaton/ClientGetCommandImpl.java b/src/main/java/net/pterodactylus/fcp/quelaton/ClientGetCommandImpl.java index 5137c96..0c93fc3 100644 --- a/src/main/java/net/pterodactylus/fcp/quelaton/ClientGetCommandImpl.java +++ b/src/main/java/net/pterodactylus/fcp/quelaton/ClientGetCommandImpl.java @@ -3,19 +3,17 @@ package net.pterodactylus.fcp.quelaton; import java.io.IOException; import java.io.InputStream; import java.util.Optional; +import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; import net.pterodactylus.fcp.AllData; import net.pterodactylus.fcp.ClientGet; -import net.pterodactylus.fcp.FcpMessage; import net.pterodactylus.fcp.FcpUtils.TempInputStream; import net.pterodactylus.fcp.GetFailed; import net.pterodactylus.fcp.Priority; import net.pterodactylus.fcp.ReturnType; -import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; @@ -79,8 +77,14 @@ class ClientGetCommandImpl implements ClientGetCommand { @Override public Executable> uri(String uri) { + return () -> threadPool.submit(() -> execute(uri)); + } + + private Optional execute(String uri) throws InterruptedException, ExecutionException, IOException { ClientGet clientGet = createClientGetCommand(uri); - return () -> threadPool.submit(() -> new ClientGetReplySequence().send(clientGet).get()); + try (ClientGetDialog clientGetDialog = new ClientGetDialog()) { + return clientGetDialog.send(clientGet).get(); + } } private ClientGet createClientGetCommand(String uri) { @@ -107,7 +111,7 @@ class ClientGetCommandImpl implements ClientGetCommand { return clientGet; } - private class ClientGetReplySequence extends FcpReplySequence> { + private class ClientGetDialog extends FcpDialog> { private final AtomicBoolean finished = new AtomicBoolean(); private final AtomicBoolean failed = new AtomicBoolean(); @@ -116,7 +120,7 @@ class ClientGetCommandImpl implements ClientGetCommand { private long dataLength; private InputStream payload; - public ClientGetReplySequence() throws IOException { + public ClientGetDialog() throws IOException { super(ClientGetCommandImpl.this.threadPool, ClientGetCommandImpl.this.connectionSupplier.get()); }