Ejemplo n.º 1
0
  @Override
  public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    JAtomicResourceSession atomicResourceSession =
        JAtomicResourceSessionHolder.getAtomicResourceSession();
    Monitor.get().in();
    Throwable throwable = null;
    Object object = null;
    try {
      object = method.invoke(target, args);
    } catch (Exception e) {
      logger.error(target.getClass().getName() + "(proxy) invoke encounter exception : ", e);
      throwable = e;
      throw e;
    } finally {
      if (throwable != null) {
        atomicResourceSession.rollback();
        Monitor.remove();
        JAtomicResourceSessionHolder.release();
      }

      if (Monitor.get().out()) {
        atomicResourceSession.commit();
        Monitor.remove();
        JAtomicResourceSessionHolder.release();
      }
    }
    return object;
  }
Ejemplo n.º 2
0
 public MetaDataRecord get(PnfsId id) throws CacheException, InterruptedException {
   Monitor monitor = _entries.get(id);
   return (monitor != null) ? monitor.get() : null;
 }