You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2016/05/17 09:52:57 UTC

svn commit: r1744231 - /sling/trunk/testing/junit/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/TeleporterHttpClient.java

Author: bdelacretaz
Date: Tue May 17 09:52:57 2016
New Revision: 1744231

URL: http://svn.apache.org/viewvc?rev=1744231&view=rev
Log:
SLING-5715 - Do not open input streams if no HTTP status received

Modified:
    sling/trunk/testing/junit/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/TeleporterHttpClient.java

Modified: sling/trunk/testing/junit/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/TeleporterHttpClient.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/junit/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/TeleporterHttpClient.java?rev=1744231&r1=1744230&r2=1744231&view=diff
==============================================================================
--- sling/trunk/testing/junit/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/TeleporterHttpClient.java (original)
+++ sling/trunk/testing/junit/teleporter/src/main/java/org/apache/sling/testing/teleporter/client/TeleporterHttpClient.java Tue May 17 09:52:57 2016
@@ -138,11 +138,17 @@ class TeleporterHttpClient {
         c.setDoOutput(true);
         c.setDoInput(true);
         c.setInstanceFollowRedirects(false);
+        boolean gotStatus = false;
+        int result = 0;
         try {
-            return c.getResponseCode();
+            result = c.getResponseCode();
+            gotStatus = true;
         } finally {
-            cleanup(c);
+            // If we didn't get a status, do not attempt
+            // to get input streams as this would retry connecting
+            cleanup(c, gotStatus);
         }
+        return result;
     }
 
     void runTests(String testSelectionPath, int testReadyTimeoutSeconds) throws MalformedURLException, IOException, MultipleFailureException {
@@ -202,13 +208,19 @@ class TeleporterHttpClient {
     }
     
     private void cleanup(HttpURLConnection c) {
-        try {
-            consumeAndClose(c.getInputStream());
-        } catch(IOException ignored) {
-        }
-        try {
-            consumeAndClose(c.getErrorStream());
-        } catch(IOException ignored) {
+        cleanup(c, true);
+    }
+    
+    private void cleanup(HttpURLConnection c, boolean includeInputStreams) {
+        if(includeInputStreams) {
+            try {
+                consumeAndClose(c.getInputStream());
+            } catch(IOException ignored) {
+            }
+            try {
+                consumeAndClose(c.getErrorStream());
+            } catch(IOException ignored) {
+            }
         }
         c.disconnect();
     }