public void addPhaseListener(PhaseListener listener) { if (listener == null) throw new NullPointerException(); synchronized (_phaseList) { _phaseList.add(listener); _phaseListeners = new PhaseListener[_phaseList.size()]; _phaseList.toArray(_phaseListeners); } }
public void configurePhaseListeners(ArrayList<PhaseListener> list) { try { for (int i = 0; i < _phaseListenerList.size(); i++) list.add((PhaseListener) _phaseListenerList.get(i).newInstance()); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw ConfigException.create(e); } }
/** Creates a new connection. */ private UserPoolItem createConnection( ManagedConnectionFactory mcf, Subject subject, ConnectionRequestInfo info, UserPoolItem oldPoolItem) throws ResourceException { boolean isValid = false; ManagedPoolItem poolItem = null; try { ManagedConnection mConn = mcf.createManagedConnection(subject, info); if (mConn == null) throw new ResourceException( L.l("'{0}' did not return a connection from createManagedConnection", mcf)); poolItem = new ManagedPoolItem(this, mcf, mConn); UserPoolItem userPoolItem; // Ensure the connection is still valid userPoolItem = poolItem.toActive(subject, info, oldPoolItem); if (userPoolItem == null) { throw new ResourceException(L.l("Connection '{0}' was not valid on creation", poolItem)); } _connectionCreateCountTotal.incrementAndGet(); synchronized (_connectionPool) { _connectionPool.add(poolItem); } poolItem = null; isValid = true; return userPoolItem; } finally { if (!isValid) { _connectionFailCountTotal.incrementAndGet(); _lastFailTime = CurrentTime.getCurrentTime(); } // server/308b - connection removed on rollback-only, when it's // theoretically possible to reuse it if (poolItem != null) poolItem.destroy(); } }
public void addPhaseListener(Class cl) { Config.validate(cl, PhaseListener.class); _phaseListenerList.add(cl); }