in repository/service/src/main/java/org/apache/karaf/cave/repository/service/maven/MavenServlet.java [439:485]
protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (!authorize(request, response, uploadRole)) {
return;
}
try {
String path = request.getPathInfo();
//Make sure path is valid
if (path != null) {
if (path.startsWith("/")) {
path = path.substring(1);
}
}
if (path == null || path.isEmpty()) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return;
}
boolean result;
// handle move
String location = request.getHeader(LOCATION_HEADER);
if (location != null) {
result = upload(new File(location), path, response);
} else {
Path dir = tmpFolder.toPath().resolve(UUID.randomUUID().toString());
Path temp = dir.resolve(Paths.get(path).getFileName());
Files.createDirectories(dir);
try (OutputStream os = Files.newOutputStream(temp)) {
StreamUtils.copy(request.getInputStream(), os);
}
result = upload(temp.toFile(), path, response);
}
response.setStatus(result ? HttpServletResponse.SC_ACCEPTED : HttpServletResponse.SC_NOT_ACCEPTABLE);
} catch (InvalidMavenArtifactRequest ex) {
// must response with status and flush as Jetty may report org.eclipse.jetty.server.Response Committed before 401 null
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
response.setContentLength(0);
response.flushBuffer();
} catch (Exception ex) {
// must response with status and flush as Jetty may report org.eclipse.jetty.server.Response Committed before 401 null
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
response.setContentLength(0);
response.flushBuffer();
}
}