@SuppressWarnings({ "unchecked", "rawtypes" }) public void operationComplete(CloseFuture future) { // now connection should be closed log.debug("Close operation completed {}: {}", sessionId, future.isClosed()); future.removeListener(this); for (Object key : session.getAttributeKeys()) { Object obj = session.getAttribute(key); log.debug("{}: {}", key, obj); if (obj != null) { if (log.isTraceEnabled()) { log.trace("Attribute: {}", obj.getClass().getName()); } if (obj instanceof IoProcessor) { log.debug("Flushing session in processor"); ((IoProcessor) obj).flush(session); log.debug("Removing session from processor"); ((IoProcessor) obj).remove(session); } else if (obj instanceof IoBuffer) { log.debug("Clearing session buffer"); ((IoBuffer) obj).clear(); ((IoBuffer) obj).free(); } } } } };
public final void dispose() { if (disposed) { return; } synchronized (disposalLock) { if (!disposing) { disposing = true; for (int i = pool.length - 1; i >= 0; i--) { if (pool[i] == null || pool[i].isDisposing()) { continue; } try { pool[i].dispose(); } catch (Exception e) { LOGGER.warn("Failed to dispose a " + pool[i].getClass().getSimpleName() + " at index " + i + ".", e); } finally { pool[i] = null; } } if (createdExecutor) { ((ExecutorService) executor).shutdown(); } } } disposed = true; }
/** * {@inheritDoc} */ @Override public final void updateTrafficControl(S session) { getProcessor(session).updateTrafficControl(session); }
@Override public void stop ( final BundleContext bundleContext ) throws Exception { this.handle.unregister (); if ( this.processor != null ) { this.processor.dispose (); } Activator.instance = null; } }
/** * {@inheritDoc} */ @Override public final void flush(S session) { getProcessor(session).flush(session); }
/** * {@inheritDoc} */ @Override public final void remove(S session) { getProcessor(session).remove(session); }
/** * {@inheritDoc} */ @Override public final void add(S session) { getProcessor(session).add(session); }
/** * {@inheritDoc} */ @Override public final void write(S session, WriteRequest writeRequest) { getProcessor(session).write(session, writeRequest); }
if (ioProcessor.isDisposing()) { continue; ioProcessor.dispose(); } catch (Exception e) { LOGGER.warn("Failed to dispose the {} IoProcessor.", ioProcessor.getClass().getSimpleName(), e);
@SuppressWarnings("unchecked") protected void suspendRead0() { getProcessor().updateTrafficControl(this); }
@Override public void stop ( final BundleContext bundleContext ) throws Exception { this.handle.unregister (); if ( this.processor != null ) { this.processor.dispose (); } Activator.instance = null; } }
/** * {@inheritDoc} */ @Override public final void flush(S session) { getProcessor(session).flush(session); }
/** * {@inheritDoc} */ @Override public final void remove(S session) { getProcessor(session).remove(session); }
/** * {@inheritDoc} */ @Override public final void add(S session) { getProcessor(session).add(session); }
/** * {@inheritDoc} */ @Override public final void write(S session, WriteRequest writeRequest) { getProcessor(session).write(session, writeRequest); }
if (ioProcessor.isDisposing()) { continue; ioProcessor.dispose(); } catch (Exception e) { LOGGER.warn("Failed to dispose the {} IoProcessor.", ioProcessor.getClass().getSimpleName(), e);
/** * {@inheritDoc} */ @Override public final void updateTrafficControl(S session) { getProcessor(session).updateTrafficControl(session); }
@Override public void stop ( final BundleContext bundleContext ) throws Exception { this.handle.unregister (); if ( this.processor != null ) { this.processor.dispose (); } Activator.instance = null; }