public static String getData() {
        Future<String> f = getInstance().startupFuture.get();
        if (f == null) {
            // FIXME haven't even started yet... need to busy-wait, perhaps
        }
        try {
            String data = f.get(30, TimeUnit.SECONDS);
            return data;
        } catch (InterruptedException | ExecutionException e) {
            // FIXME failed to startup or was interrupted during startup; maybe throw to the caller?
            throw new IllegalStateException(e);
        } catch (TimeoutException e) {
            // FIXME got tired of waiting, maybe do something special here?
            throw new IllegalStateException(e);
        }
    }
public static String getData() {
        Future<String> f = getInstance().startupFuture.get();
        if (f == null) {
           
        }
        try {
            String data = f.get(30, TimeUnit.SECONDS);
            return data;
        } catch (InterruptedException | ExecutionException e) {
           
            throw new IllegalStateException(e);
        } catch (TimeoutException e) {
           
            throw new IllegalStateException(e);
        }
    }
public static string getdata() { future<string> f = getinstance().startupfuture.get(); if (f == null) { } try { string data = f.get(30, timeunit.seconds); return data; } catch (interruptedexception | executionexception e) { throw new illegalstateexception(e); } catch (timeoutexception e) { throw new illegalstateexception(e); } }