X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr%2Fsrc%2Forg%2Fargeo%2Fjcr%2Fproxy%2FResourceProxyServlet.java;h=d77bd49dca21fed2b7e2e1e827723fe4ba3055c2;hb=8e5934c1ff5587a5156854839210cc93bb66fc41;hp=e92e2a40216f02b35a82a1e865f25643ed87e2b1;hpb=e66b9893b0e511f8ab295e3cee42b7dc966f1597;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.jcr/src/org/argeo/jcr/proxy/ResourceProxyServlet.java b/org.argeo.jcr/src/org/argeo/jcr/proxy/ResourceProxyServlet.java index e92e2a402..d77bd49dc 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/proxy/ResourceProxyServlet.java +++ b/org.argeo.jcr/src/org/argeo/jcr/proxy/ResourceProxyServlet.java @@ -1,26 +1,9 @@ -/* - * Copyright (C) 2007-2012 Argeo GmbH - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ package org.argeo.jcr.proxy; import java.io.IOException; import java.io.InputStream; -import javax.jcr.Binary; import javax.jcr.Node; -import javax.jcr.PathNotFoundException; import javax.jcr.Property; import javax.jcr.RepositoryException; import javax.servlet.ServletException; @@ -32,7 +15,8 @@ import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.argeo.jcr.ArgeoJcrException; +import org.argeo.jcr.JcrException; +import org.argeo.jcr.Bin; import org.argeo.jcr.JcrUtils; /** Wraps a proxy via HTTP */ @@ -54,7 +38,7 @@ public class ResourceProxyServlet extends HttpServlet { if (log.isTraceEnabled()) { log.trace("path=" + path); log.trace("UserPrincipal = " + request.getUserPrincipal().getName()); - log.trace("SessionID = " + request.getSession().getId()); + log.trace("SessionID = " + request.getSession(false).getId()); log.trace("ContextPath = " + request.getContextPath()); log.trace("ServletPath = " + request.getServletPath()); log.trace("PathInfo = " + request.getPathInfo()); @@ -82,9 +66,10 @@ public class ResourceProxyServlet extends HttpServlet { /** Retrieve the content of the node. */ protected void processResponse(Node node, HttpServletResponse response) { - Binary binary = null; - InputStream in = null; - try { +// Binary binary = null; +// InputStream in = null; + try(Bin binary = new Bin( node.getNode(Property.JCR_CONTENT) + .getProperty(Property.JCR_DATA));InputStream in = binary.getStream()) { String fileName = node.getName(); String ext = FilenameUtils.getExtension(fileName); @@ -116,20 +101,11 @@ public class ResourceProxyServlet extends HttpServlet { response.setContentType(contentType); - try { - binary = node.getNode(Property.JCR_CONTENT) - .getProperty(Property.JCR_DATA).getBinary(); - } catch (PathNotFoundException e) { - log.error("Node " + node + " as no data under content"); - throw e; - } - in = binary.getStream(); IOUtils.copy(in, response.getOutputStream()); - } catch (Exception e) { - throw new ArgeoJcrException("Cannot download " + node, e); - } finally { - IOUtils.closeQuietly(in); - JcrUtils.closeQuietly(binary); + } catch (RepositoryException e) { + throw new JcrException("Cannot download " + node, e); + } catch (IOException e) { + throw new RuntimeException("Cannot download " + node, e); } }