in maven-resolver-transport-jetty/src/main/java/org/eclipse/aether/transport/jetty/JettyTransporter.java [351:406]
protected void implPut(PutTask task) throws Exception {
Request request = client.newRequest(resolve(task)).method("PUT");
request.headers(m -> headers.forEach(m::add));
if (preemptiveAuth || preemptivePutAuth) {
mayApplyPreemptiveAuth(request);
}
request.body(new PutTaskRequestContent(task));
AtomicBoolean started = new AtomicBoolean(false);
Response response;
try {
response = request.onRequestCommit(r -> {
if (task.getDataLength() == 0) {
if (started.compareAndSet(false, true)) {
try {
task.getListener().transportStarted(0, task.getDataLength());
} catch (TransferCancelledException e) {
r.abort(e);
}
}
}
})
.onRequestContent((r, b) -> {
if (started.compareAndSet(false, true)) {
try {
task.getListener().transportStarted(0, task.getDataLength());
} catch (TransferCancelledException e) {
r.abort(e);
return;
}
}
try {
task.getListener().transportProgressed(b);
} catch (TransferCancelledException e) {
r.abort(e);
}
})
.send();
} catch (ExecutionException e) {
Throwable t = e.getCause();
if (t instanceof IOException) {
IOException ioex = (IOException) t;
if (ioex.getCause() instanceof TransferCancelledException) {
throw (TransferCancelledException) ioex.getCause();
} else {
throw ioex;
}
} else if (t instanceof Exception) {
throw (Exception) t;
} else {
throw new RuntimeException(t);
}
}
if (response.getStatus() >= MULTIPLE_CHOICES) {
throw new HttpTransporterException(response.getStatus());
}
}