in artifactregistry-maven-wagon/src/main/java/com/google/cloud/artifactregistry/wagon/ArtifactRegistryWagon.java [142:189]
private void handlePutRequest(File source, Resource resource, GenericUrl url)
throws AuthorizationException, ResourceDoesNotExistException, TransferFailedException {
try {
HttpRequest request = requestFactory.buildPutRequest(url, new HttpContent() {
@Override
public long getLength() throws IOException {
return source.length();
}
@Override
public String getType() {
return null;
}
@Override
public boolean retrySupported() {
return true;
}
@Override
public void writeTo(OutputStream out) throws IOException {
try {
putTransfer(resource, source, out, false);
} catch (TransferFailedException | AuthorizationException | ResourceDoesNotExistException e) {
throw new FileTransferException(e);
}
}
});
request.execute();
} catch (HttpResponseException e) {
rethrowAuthorizationException(e);
rethrowNotFoundException(e);
throw new TransferFailedException("Received an error from the remote server.", e);
} catch (FileTransferException e) {
Throwable cause = e.getCause();
if (cause instanceof TransferFailedException) {
throw (TransferFailedException) cause;
} else if (cause instanceof AuthorizationException) {
throw (AuthorizationException) cause;
} else if (cause instanceof ResourceDoesNotExistException) {
throw (ResourceDoesNotExistException) cause;
}
throw new TransferFailedException("Error uploading file.", cause);
} catch (IOException e) {
throw new TransferFailedException("Failed to send request to remote server.", e);
}
}