From 1afdf45ba7846d666c2db6c38e659e3cb4551751 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Mon, 3 Feb 2014 15:32:02 +0100
Subject: [PATCH] OO-966: close the response, upgrade the httpcomponents
 library, remove blank try/catch

---
 pom.xml                                            |  6 +++---
 .../core/gui/media/HttpRequestMediaResource.java   | 14 +++++++++++---
 .../java/org/olat/modules/tu/TunnelMapper.java     |  4 +++-
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/pom.xml b/pom.xml
index 242d4c4823d..f0371b5f0de 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1965,12 +1965,12 @@
 		<dependency>
 			<groupId>org.apache.httpcomponents</groupId>
 			<artifactId>httpcore</artifactId>
-			<version>4.3</version>
+			<version>4.3.1</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.httpcomponents</groupId>
 			<artifactId>httpclient</artifactId>
-			<version>4.3</version>
+			<version>4.3.1</version>
 			<exclusions>
 				<exclusion>
 					<groupId>commons-logging</groupId>
@@ -1981,7 +1981,7 @@
 		<dependency>
 			<groupId>org.apache.httpcomponents</groupId>
 			<artifactId>httpmime</artifactId>
-			<version>4.3</version>
+			<version>4.3.1</version>
 		</dependency>
 		<dependency>
 			<groupId>commons-lang</groupId>
diff --git a/src/main/java/org/olat/core/gui/media/HttpRequestMediaResource.java b/src/main/java/org/olat/core/gui/media/HttpRequestMediaResource.java
index 6714b287071..1c10641d060 100644
--- a/src/main/java/org/olat/core/gui/media/HttpRequestMediaResource.java
+++ b/src/main/java/org/olat/core/gui/media/HttpRequestMediaResource.java
@@ -26,6 +26,8 @@
 
 package org.olat.core.gui.media;
 
+import java.io.ByteArrayInputStream;
+import java.io.Closeable;
 import java.io.InputStream;
 import java.text.DateFormat;
 import java.text.ParseException;
@@ -34,13 +36,18 @@ import java.util.Date;
 
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.http.Header;
 import org.apache.http.HttpResponse;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 
 /**
  * @author Mike Stock
  */
 public class HttpRequestMediaResource implements MediaResource {
+	
+	private static final OLog log = Tracing.createLoggerFor(HttpRequestMediaResource.class);
 
 	private final HttpResponse response;
 
@@ -78,7 +85,7 @@ public class HttpRequestMediaResource implements MediaResource {
 		try {
 			return response.getEntity().getContent();
 		} catch (Exception e) {
-			//  
+			log.error("", e);
 		}
 		return null;
 	}
@@ -107,7 +114,9 @@ public class HttpRequestMediaResource implements MediaResource {
 	 */
 	@Override
 	public void release() {
-		//response.getEntity()..releaseConnection();
+		if(response instanceof Closeable) {
+			IOUtils.closeQuietly((Closeable)response);
+		}
 	}
 
 	/**
@@ -124,6 +133,5 @@ public class HttpRequestMediaResource implements MediaResource {
 		} else {
 			hres.setHeader("Content-Disposition", "filename=" + h.getValue());
 		}
-		
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/tu/TunnelMapper.java b/src/main/java/org/olat/modules/tu/TunnelMapper.java
index b26f49c1f78..6227b4988f8 100644
--- a/src/main/java/org/olat/modules/tu/TunnelMapper.java
+++ b/src/main/java/org/olat/modules/tu/TunnelMapper.java
@@ -38,6 +38,7 @@ import org.apache.http.client.methods.HttpPost;
 import org.apache.http.client.methods.HttpUriRequest;
 import org.apache.http.client.utils.URIBuilder;
 import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
 import org.olat.basesecurity.BaseSecurityModule;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.dispatcher.mapper.Mapper;
@@ -144,6 +145,7 @@ public class TunnelMapper implements Mapper {
 			Header responseHeader = response.getFirstHeader("Content-Type");
 			if (responseHeader == null) {
 				// error
+				EntityUtils.consumeQuietly(response.getEntity());
 				return new NotFoundMediaResource(relPath);
 			}
 			return new HttpRequestMediaResource(response);
@@ -154,7 +156,7 @@ public class TunnelMapper implements Mapper {
 			log.error("", e);
 			return null;
 		} catch (IOException e) {
-			log.error("", e);
+			log.error("Error loading URI: " + (meth == null ? "???" : meth.getURI()), e);
 			return null;
 		}
 	}
-- 
GitLab