/** * Returns the backing store authority factory. * * @return The backing store to uses in {@code createXXX(...)} methods. * @throws FactoryException if the creation of backing store failed. */ @Override protected final AbstractAuthorityFactory getBackingStore() throws FactoryException { if (backingStore == null) { synchronized (this) { if (backingStore == null) { backingStore = createBackingStore(); if (backingStore == null) { throw new FactoryNotFoundException(Errors.format(ErrorKeys.NO_DATA_SOURCE)); } completeHints(); } } } used = true; // Tell to the disposer to wait again. return backingStore; }