(K key)
| 40 | .build( |
| 41 | new CacheLoader<K, Object>() { |
| 42 | @Override |
| 43 | public Object load(K key) { |
| 44 | loadingSet.add(key); |
| 45 | Errors errors = new Errors(); |
| 46 | V result = null; |
| 47 | try { |
| 48 | result = FailableCache.this.create(key, errors); |
| 49 | } catch (ErrorsException e) { |
| 50 | errors.merge(e.getErrors()); |
| 51 | } finally { |
| 52 | loadingSet.remove(key); |
| 53 | } |
| 54 | return errors.hasErrors() ? errors : result; |
| 55 | } |
| 56 | }); |
| 57 | |
| 58 | protected abstract V create(K key, Errors errors) throws ErrorsException; |