You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2016/02/01 18:49:07 UTC
[37/50] brooklyn-server git commit: HttpTestUtils.connectToUrl:
interrupt if takes too long
HttpTestUtils.connectToUrl: interrupt if takes too long
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/e299b110
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/e299b110
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/e299b110
Branch: refs/heads/0.4.0
Commit: e299b110fcbcbfe6fe286ac453fb3b59972df51d
Parents: b97d6dd
Author: Aled Sage <al...@gmail.com>
Authored: Sun Oct 14 14:43:43 2012 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Oct 16 22:23:04 2012 +0100
----------------------------------------------------------------------
.../main/java/brooklyn/test/HttpTestUtils.java | 51 +++++++++++++++-----
1 file changed, 40 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e299b110/usage/test-support/src/main/java/brooklyn/test/HttpTestUtils.java
----------------------------------------------------------------------
diff --git a/usage/test-support/src/main/java/brooklyn/test/HttpTestUtils.java b/usage/test-support/src/main/java/brooklyn/test/HttpTestUtils.java
index a9167fe..0a2c6c5 100644
--- a/usage/test-support/src/main/java/brooklyn/test/HttpTestUtils.java
+++ b/usage/test-support/src/main/java/brooklyn/test/HttpTestUtils.java
@@ -10,9 +10,11 @@ import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.NoSuchElementException;
+import java.util.concurrent.atomic.AtomicReference;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
@@ -45,18 +47,45 @@ public class HttpTestUtils {
* Connects to the given url and returns the connection.
*/
public static URLConnection connectToUrl(String u) throws Exception {
- URL url = new URL(u);
- URLConnection connection = url.openConnection();
- TrustingSslSocketFactory.configure(connection);
- HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
- @Override public boolean verify(String s, SSLSession sslSession) {
- return true;
+ final URL url = new URL(u);
+ final AtomicReference<URLConnection> result = new AtomicReference<URLConnection>();
+ final AtomicReference<Exception> exception = new AtomicReference<Exception>();
+
+ Thread thread = new Thread("url-test-connector") {
+ public void run() {
+ try {
+ URLConnection connection = url.openConnection();
+ TrustingSslSocketFactory.configure(connection);
+ HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
+ @Override public boolean verify(String s, SSLSession sslSession) {
+ return true;
+ }
+ });
+ connection.connect();
+
+ connection.getContentLength(); // Make sure the connection is made.
+ result.set(connection);
+ } catch (Exception e) {
+ exception.set(e);
+ LOG.info("Error connecting to url "+url+" (propagating)", e);
+ }
}
- });
- connection.connect();
-
- connection.getContentLength(); // Make sure the connection is made.
- return connection;
+ };
+ try {
+ thread.start();
+ thread.join(60*1000);
+
+ if (thread.isAlive()) {
+ throw new IllegalStateException("Connect to URL not complete within 60 seconds, for url "+url+"; stacktrace "+Arrays.toString(thread.getStackTrace()));
+ } else if (exception.get() != null) {
+ throw exception.get();
+ } else {
+ return result.get();
+ }
+
+ } finally {
+ thread.interrupt();
+ }
}
public static int getHttpStatusCode(String url) throws Exception {