projects
/
jFCPlib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add method to add peer by noderef
[jFCPlib.git]
/
src
/
main
/
java
/
net
/
pterodactylus
/
fcp
/
quelaton
/
ClientPutCommandImpl.java
diff --git
a/src/main/java/net/pterodactylus/fcp/quelaton/ClientPutCommandImpl.java
b/src/main/java/net/pterodactylus/fcp/quelaton/ClientPutCommandImpl.java
index
8a2ebfe
..
df345f3
100644
(file)
--- a/
src/main/java/net/pterodactylus/fcp/quelaton/ClientPutCommandImpl.java
+++ b/
src/main/java/net/pterodactylus/fcp/quelaton/ClientPutCommandImpl.java
@@
-6,6
+6,7
@@
import java.io.InputStream;
import java.nio.file.Files;
import java.util.Objects;
import java.util.Optional;
import java.nio.file.Files;
import java.util.Objects;
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.AtomicLong;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
@@
-54,32
+55,38
@@
class ClientPutCommandImpl implements ClientPutCommand {
}
@Override
}
@Override
- public WithUri<
Optional<Key
>> redirectTo(String uri) {
+ public WithUri<
Executable<Optional<Key>
>> redirectTo(String uri) {
this.redirectUri.set(Objects.requireNonNull(uri, "uri must not be null"));
return this::key;
}
@Override
this.redirectUri.set(Objects.requireNonNull(uri, "uri must not be null"));
return this::key;
}
@Override
- public WithUri<
Optional<Key
>> from(File file) {
+ public WithUri<
Executable<Optional<Key>
>> from(File file) {
this.file.set(Objects.requireNonNull(file, "file must not be null"));
return this::key;
}
@Override
this.file.set(Objects.requireNonNull(file, "file must not be null"));
return this::key;
}
@Override
- public WithLength<WithUri<
Optional<Key
>>> from(InputStream inputStream) {
+ public WithLength<WithUri<
Executable<Optional<Key>
>>> from(InputStream inputStream) {
payload.set(Objects.requireNonNull(inputStream, "inputStream must not be null"));
return this::length;
}
payload.set(Objects.requireNonNull(inputStream, "inputStream must not be null"));
return this::length;
}
- private WithUri<
Optional<Key
>> length(long length) {
+ private WithUri<
Executable<Optional<Key>
>> length(long length) {
this.length.set(length);
return this::key;
}
this.length.set(length);
return this::key;
}
- private ListenableFuture<Optional<Key>> key(String uri) {
+ private Executable<Optional<Key>> key(String uri) {
+ return () -> threadPool.submit(() -> execute(uri));
+ }
+
+ private Optional<Key> execute(String uri) throws InterruptedException, ExecutionException, IOException {
String identifier = new RandomIdentifierGenerator().generate();
ClientPut clientPut = createClientPutCommand(uri, identifier);
String identifier = new RandomIdentifierGenerator().generate();
ClientPut clientPut = createClientPutCommand(uri, identifier);
- return threadPool.submit(() -> new ClientPutReplySequence().send(clientPut).get());
+ try (ClientPutReplySequence clientPutReplySequence = new ClientPutReplySequence()) {
+ return clientPutReplySequence.send(clientPut).get();
+ }
}
private ClientPut createClientPutCommand(String uri, String identifier) {
}
private ClientPut createClientPutCommand(String uri, String identifier) {
@@
-184,11
+191,6
@@
class ClientPutCommandImpl implements ClientPutCommand {
sendMessage(originalClientPut.get());
}
sendMessage(originalClientPut.get());
}
- @Override
- protected void consumeConnectionClosed(Throwable throwable) {
- putFinished.set(true);
- }
-
}
}
}
}