X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2Fquelaton%2FClientPutCommandImpl.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2Fquelaton%2FClientPutCommandImpl.java;h=6eeddd961e97574bd646dd128789352a78ac798f;hb=7a3be5ca037785f4f1acb225381578db12d15eb1;hp=06d54e0b4ef2f4811eca52b3cc3b85bc445f5642;hpb=91de0a638af50527fc314ed97a095d1beaf36866;p=jFCPlib.git diff --git a/src/main/java/net/pterodactylus/fcp/quelaton/ClientPutCommandImpl.java b/src/main/java/net/pterodactylus/fcp/quelaton/ClientPutCommandImpl.java index 06d54e0..6eeddd9 100644 --- a/src/main/java/net/pterodactylus/fcp/quelaton/ClientPutCommandImpl.java +++ b/src/main/java/net/pterodactylus/fcp/quelaton/ClientPutCommandImpl.java @@ -14,6 +14,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; +import java.util.function.Supplier; import net.pterodactylus.fcp.ClientPut; import net.pterodactylus.fcp.FcpMessage; @@ -41,6 +42,7 @@ class ClientPutCommandImpl implements ClientPutCommand { private final ListeningExecutorService threadPool; private final ConnectionSupplier connectionSupplier; + private final Supplier identifierGenerator; private final AtomicReference redirectUri = new AtomicReference<>(); private final AtomicReference file = new AtomicReference<>(); private final AtomicReference payload = new AtomicReference<>(); @@ -48,9 +50,10 @@ class ClientPutCommandImpl implements ClientPutCommand { private final AtomicReference targetFilename = new AtomicReference<>(); private final List> keyGenerateds = new CopyOnWriteArrayList<>(); - public ClientPutCommandImpl(ExecutorService threadPool, ConnectionSupplier connectionSupplier) { + public ClientPutCommandImpl(ExecutorService threadPool, ConnectionSupplier connectionSupplier, Supplier identifierGenerator) { this.threadPool = MoreExecutors.listeningDecorator(threadPool); this.connectionSupplier = connectionSupplier; + this.identifierGenerator = identifierGenerator; } @Override @@ -93,8 +96,7 @@ class ClientPutCommandImpl implements ClientPutCommand { } private Optional execute(String uri) throws InterruptedException, ExecutionException, IOException { - String identifier = new RandomIdentifierGenerator().generate(); - ClientPut clientPut = createClientPutCommand(uri, identifier); + ClientPut clientPut = createClientPutCommand(uri, identifierGenerator.get()); try (ClientPutDialog clientPutDialog = new ClientPutDialog()) { return clientPutDialog.send(clientPut).get(); }