@Override public final E get() { if (!_fetched.get()) { synchronized (_fetched) { if (!_fetched.get()) { try { _object = fetch(); } catch (Throwable t) { _error = t; if (t instanceof RuntimeException) { throw (RuntimeException) t; } logger.warn("Failed to fetch value: " + this + ". Reporting error.", t); } finally { _fetched.set(true); } } } } return _object; }
@Override public final E get() { if (!_fetched.get()) { synchronized (_fetched) { if (!_fetched.get()) { try { _object = fetch(); } catch (Throwable t) { _error = t; if (t instanceof RuntimeException) { throw (RuntimeException) t; } logger.warn("Failed to fetch value: " + this + ". Reporting error.", t); } finally { _fetched.set(true); } } } } return _object; }