public Object getStat() throws Exception {

        final HttpURLConnection conn = (HttpURLConnection)url.openConnection();
        Future<Integer> future = executor.submit(new Callable<Integer>() {
            public Integer call() throws Exception {
                conn.connect();
                return conn.getResponseCode();
            }
        });
        try {
            return future.get(timeout, TimeUnit.MILLISECONDS);
        }
        catch (TimeoutException e) {
            future.cancel(true);
            return "Timeout";
        }
        catch (ExecutionException e) {
            if (e.getCause() instanceof SocketTimeoutException) {
                return "Timeout";
            }
            return "Not Available";
        }
    }