/** * This is final since you should override saveInCacheInsideExistingTransaction instead, generally */ @TransactionAttribute(TransactionAttributeType.NEVER) public final ResultType saveInCache( final KeyType key, final ResultType data, final boolean refetchedWithoutCheckingCache) { EJBUtil.assertNoTransaction(); try { return runner.runTaskRetryingOnConstraintViolation( new Callable<ResultType>() { public ResultType call() { return saveInCacheInsideExistingTransaction( key, data, new Date(), refetchedWithoutCheckingCache); } }); } catch (Exception e) { if (EJBUtil.isDatabaseException(e)) { logger.warn("Ignoring database exception {}: {}", e.getClass().getName(), e.getMessage()); return data; } else { ExceptionUtils.throwAsRuntimeException(e); throw new RuntimeException(e); // not reached } } }
@TransactionAttribute(TransactionAttributeType.NEVER) public ResultType fetchFromNet(KeyType key) { EJBUtil.assertNoTransaction(); return fetchFromNetImpl(key); }