Top Description Inners Fields Constructors Methods
org.glassfish.grizzly.utils

public Class IdleTimeoutFilter

extends BaseFilter
Class Inheritance
Imports
java.io.IOException, java.util.concurrent.ExecutorService, .Executors, .ThreadFactory, .TimeUnit, java.util.concurrent.atomic.AtomicIntegerFieldUpdater, .AtomicLongFieldUpdater, java.util.function.Supplier, org.glassfish.grizzly.Connection, .Grizzly, org.glassfish.grizzly.attributes.Attribute, org.glassfish.grizzly.filterchain.BaseFilter, .FilterChainContext, .NextAction

The Filter is responsible for tracking Connection activity and closing Connection once it becomes idle for certain amount of time. Unlike ActivityCheckFilter, this Filter assumes Connection is idle, when no event is being executed on it. But if some event processing was suspended - this Filter still assumes Connection is active.
Author
Alexey Stashok
See Also
ActivityCheckFilter

Nested and Inner Type Summary

Modifier and TypeClass and Description
private class
private static class
private static class
private static class
private static class
public static interface
public static interface

Field Summary

Modifier and TypeField and Description
private final FilterChainContext.CompletionListener
public static final Long
public static final Long
private static final Attribute<IdleTimeoutFilter.IdleRecord>
public static final String
private final DelayedExecutor.DelayQueue<Connection<L>>
private final DelayedExecutor.Resolver<Connection<L>>
private final IdleTimeoutFilter.TimeoutResolver

Constructor Summary

AccessConstructor and Description
public
IdleTimeoutFilter(final DelayedExecutor executor, final long timeout, final TimeUnit timeoutUnit)

public
IdleTimeoutFilter(final DelayedExecutor executor, final IdleTimeoutFilter.TimeoutResolver timeoutResolver)

public
IdleTimeoutFilter(final DelayedExecutor executor, final long timeout, final TimeUnit timeUnit, final IdleTimeoutFilter.TimeoutHandler handler)

public
protected
IdleTimeoutFilter(final DelayedExecutor executor, final DelayedExecutor.Worker<Connection<L>> worker, final IdleTimeoutFilter.TimeoutResolver timeoutResolver)

Method Summary

Modifier and TypeMethod and Description
private static long
convertToMillis(final long time, final TimeUnit timeUnit)

public static DelayedExecutor
public static DelayedExecutor
createDefaultIdleDelayedExecutor(final long checkInterval, final TimeUnit checkIntervalUnit)

public DelayedExecutor.Resolver<Connection<L>>
public NextAction
handleAccept(final FilterChainContext ctx)

Overrides org.glassfish.grizzly.filterchain.BaseFilter.handleAccept.

Implements org.glassfish.grizzly.filterchain.Filter.handleAccept.

Execute a unit of processing work to be performed, when server channel has accepted the client connection.

public NextAction
handleClose(final FilterChainContext ctx)

Overrides org.glassfish.grizzly.filterchain.BaseFilter.handleClose.

Implements org.glassfish.grizzly.filterchain.Filter.handleClose.

Execute a unit of processing work to be performed, when connection has been closed.

public NextAction
handleConnect(final FilterChainContext ctx)

Overrides org.glassfish.grizzly.filterchain.BaseFilter.handleConnect.

Implements org.glassfish.grizzly.filterchain.Filter.handleConnect.

Execute a unit of processing work to be performed, when channel gets connected.

public NextAction
handleRead(final FilterChainContext ctx)

Overrides org.glassfish.grizzly.filterchain.BaseFilter.handleRead.

Implements org.glassfish.grizzly.filterchain.Filter.handleRead.

Execute a unit of processing work to be performed, when channel will become available for reading.

public NextAction
handleWrite(final FilterChainContext ctx)

Overrides org.glassfish.grizzly.filterchain.BaseFilter.handleWrite.

Implements org.glassfish.grizzly.filterchain.Filter.handleWrite.

Execute a unit of processing work to be performed, when some data should be written on channel.

protected void
public static void
setCustomTimeout(final Connection<L>
The Connection which is having the idle detection adjusted.
connection
,
final long
the new idle timeout.
timeout
,
final TimeUnit timeunit)

Provides an override mechanism for the default timeout.

Inherited from org.glassfish.grizzly.filterchain.BaseFilter:
createContextexceptionOccurredhandleEventonAddedonFilterChainChangedonRemovedtoString

Field Detail

contextCompletionListenerback to summary
private final FilterChainContext.CompletionListener contextCompletionListener
FOREVERback to summary
public static final Long FOREVER
FOREVER_SPECIALback to summary
public static final Long FOREVER_SPECIAL
IDLE_ATTRback to summary
private static final Attribute<IdleTimeoutFilter.IdleRecord> IDLE_ATTR
IDLE_ATTRIBUTE_NAMEback to summary
public static final String IDLE_ATTRIBUTE_NAME
queueback to summary
private final DelayedExecutor.DelayQueue<Connection<L>> queue
resolverback to summary
private final DelayedExecutor.Resolver<Connection<L>> resolver
timeoutResolverback to summary
private final IdleTimeoutFilter.TimeoutResolver timeoutResolver

Constructor Detail

IdleTimeoutFilterback to summary
public IdleTimeoutFilter(final DelayedExecutor executor, final long timeout, final TimeUnit timeoutUnit)
IdleTimeoutFilterback to summary
public IdleTimeoutFilter(final DelayedExecutor executor, final IdleTimeoutFilter.TimeoutResolver timeoutResolver)
Annotations
@SuppressWarnings:UnusedDeclaration
IdleTimeoutFilterback to summary
public IdleTimeoutFilter(final DelayedExecutor executor, final long timeout, final TimeUnit timeUnit, final IdleTimeoutFilter.TimeoutHandler handler)
IdleTimeoutFilterback to summary
public IdleTimeoutFilter(final DelayedExecutor executor, final IdleTimeoutFilter.TimeoutResolver timeoutResolver, final IdleTimeoutFilter.TimeoutHandler handler)
IdleTimeoutFilterback to summary
protected IdleTimeoutFilter(final DelayedExecutor executor, final DelayedExecutor.Worker<Connection<L>> worker, final IdleTimeoutFilter.TimeoutResolver timeoutResolver)

Method Detail

convertToMillisback to summary
private static long convertToMillis(final long time, final TimeUnit timeUnit)
createDefaultIdleDelayedExecutorback to summary
public static DelayedExecutor createDefaultIdleDelayedExecutor()
Annotations
@SuppressWarnings:UnusedDeclaration
createDefaultIdleDelayedExecutorback to summary
public static DelayedExecutor createDefaultIdleDelayedExecutor(final long checkInterval, final TimeUnit checkIntervalUnit)
Annotations
@SuppressWarnings:UnusedDeclaration
getResolverback to summary
public DelayedExecutor.Resolver<Connection<L>> getResolver()
Annotations
@SuppressWarnings:UnusedDeclaration
handleAcceptback to summary
public NextAction handleAccept(final FilterChainContext ctx) throws IOException

Overrides org.glassfish.grizzly.filterchain.BaseFilter.handleAccept.

Implements org.glassfish.grizzly.filterchain.Filter.handleAccept.

Doc from org.glassfish.grizzly.filterchain.BaseFilter.handleAccept.

Execute a unit of processing work to be performed, when server channel has accepted the client connection. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Annotations
@Override
handleCloseback to summary
public NextAction handleClose(final FilterChainContext ctx) throws IOException

Overrides org.glassfish.grizzly.filterchain.BaseFilter.handleClose.

Implements org.glassfish.grizzly.filterchain.Filter.handleClose.

Doc from org.glassfish.grizzly.filterchain.BaseFilter.handleClose.

Execute a unit of processing work to be performed, when connection has been closed. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Annotations
@Override
handleConnectback to summary
public NextAction handleConnect(final FilterChainContext ctx) throws IOException

Overrides org.glassfish.grizzly.filterchain.BaseFilter.handleConnect.

Implements org.glassfish.grizzly.filterchain.Filter.handleConnect.

Doc from org.glassfish.grizzly.filterchain.BaseFilter.handleConnect.

Execute a unit of processing work to be performed, when channel gets connected. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Annotations
@Override
handleReadback to summary
public NextAction handleRead(final FilterChainContext ctx) throws IOException

Overrides org.glassfish.grizzly.filterchain.BaseFilter.handleRead.

Implements org.glassfish.grizzly.filterchain.Filter.handleRead.

Doc from org.glassfish.grizzly.filterchain.BaseFilter.handleRead.

Execute a unit of processing work to be performed, when channel will become available for reading. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Annotations
@Override
handleWriteback to summary
public NextAction handleWrite(final FilterChainContext ctx) throws IOException

Overrides org.glassfish.grizzly.filterchain.BaseFilter.handleWrite.

Implements org.glassfish.grizzly.filterchain.Filter.handleWrite.

Doc from org.glassfish.grizzly.filterchain.BaseFilter.handleWrite.

Execute a unit of processing work to be performed, when some data should be written on channel. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Annotations
@Override
queueActionback to summary
protected void queueAction(final FilterChainContext ctx)
setCustomTimeoutback to summary
public static void setCustomTimeout(final Connection<L> connection, final long timeout, final TimeUnit timeunit)

Provides an override mechanism for the default timeout.

Parameters
connection:Connection<L>

The Connection which is having the idle detection adjusted.

timeout:long

the new idle timeout.

timeunit:TimeUnit

TimeUnit.

org.glassfish.grizzly.utils back to summary

private final Class IdleTimeoutFilter.ContextCompletionListener

extends Object
implements CompletionListener
Class Inheritance
  • java.lang.Object
  • org.glassfish.grizzly.utils.IdleTimeoutFilter.ContextCompletionListener
All Implemented Interfaces
org.glassfish.grizzly.filterchain.FilterChainContext.CompletionListener

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

ContextCompletionListenerback to summary
private ContextCompletionListener()

Method Detail

onCompleteback to summary
public void onComplete(final FilterChainContext ctx)

Implements org.glassfish.grizzly.filterchain.FilterChainContext.CompletionListener.onComplete.

Doc from org.glassfish.grizzly.filterchain.FilterChainContext.CompletionListener.onComplete.

The method is called, when passed FilterChainContext processing is complete.

Annotations
@Override
org.glassfish.grizzly.utils back to summary

private final Class IdleTimeoutFilter.DefaultWorker

extends Object
implements DelayedExecutor.Worker<Connection<L>>
Class Inheritance
All Implemented Interfaces
org.glassfish.grizzly.utils.DelayedExecutor.Worker

Field Summary

Modifier and TypeField and Description
private final IdleTimeoutFilter.TimeoutHandler

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public boolean
doWork(final Connection<L> connection)

Implements org.glassfish.grizzly.utils.DelayedExecutor.Worker.doWork.

The method is executed by DelayExecutor once element's timeout expires.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

handlerback to summary
private final IdleTimeoutFilter.TimeoutHandler handler

Constructor Detail

DefaultWorkerback to summary
pack-priv DefaultWorker(final IdleTimeoutFilter.TimeoutHandler handler)

Method Detail

doWorkback to summary
public boolean doWork(final Connection<L> connection)

Implements org.glassfish.grizzly.utils.DelayedExecutor.Worker.doWork.

Doc from org.glassfish.grizzly.utils.DelayedExecutor.Worker.doWork.

The method is executed by DelayExecutor once element's timeout expires.

Annotations
@Override
org.glassfish.grizzly.utils back to summary

private final Class IdleTimeoutFilter.IdleRecord

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
private volatile int
private static final AtomicIntegerFieldUpdater<IdleTimeoutFilter.IdleRecord>
private long
private boolean
private volatile boolean
private volatile long
private static final AtomicLongFieldUpdater<IdleTimeoutFilter.IdleRecord>

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private void
private long
getInitialTimeoutMillis(final long defaultTimeoutMillis)

private void
setInitialTimeoutMillis(final long initialTimeoutMillis)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

counterback to summary
private volatile int counter
counterUpdaterback to summary
private static final AtomicIntegerFieldUpdater<IdleTimeoutFilter.IdleRecord> counterUpdater
initialTimeoutMillisback to summary
private long initialTimeoutMillis
isClosedback to summary
private boolean isClosed
isInitialSetback to summary
private volatile boolean isInitialSet
timeoutMillisback to summary
private volatile long timeoutMillis
timeoutMillisUpdaterback to summary
private static final AtomicLongFieldUpdater<IdleTimeoutFilter.IdleRecord> timeoutMillisUpdater

Constructor Detail

IdleRecordback to summary
private IdleRecord()

Method Detail

closeback to summary
private void close()
getInitialTimeoutMillisback to summary
private long getInitialTimeoutMillis(final long defaultTimeoutMillis)
setInitialTimeoutMillisback to summary
private void setInitialTimeoutMillis(final long initialTimeoutMillis)
org.glassfish.grizzly.utils back to summary

private final Class IdleTimeoutFilter.IdleTimeoutResolver

extends Object
implements TimeoutResolver
Class Inheritance
  • java.lang.Object
  • org.glassfish.grizzly.utils.IdleTimeoutFilter.IdleTimeoutResolver
All Implemented Interfaces
org.glassfish.grizzly.utils.IdleTimeoutFilter.TimeoutResolver

Field Summary

Modifier and TypeField and Description
private final long

Constructor Summary

AccessConstructor and Description
pack-priv
IdleTimeoutResolver(final long defaultTimeoutMillis)

Method Summary

Modifier and TypeMethod and Description
public long
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

defaultTimeoutMillisback to summary
private final long defaultTimeoutMillis

Constructor Detail

IdleTimeoutResolverback to summary
pack-priv IdleTimeoutResolver(final long defaultTimeoutMillis)

Method Detail

getTimeoutback to summary
public long getTimeout(final FilterChainContext ctx)

Implements org.glassfish.grizzly.utils.IdleTimeoutFilter.TimeoutResolver.getTimeout.

Annotations
@Override
org.glassfish.grizzly.utils back to summary

private final Class IdleTimeoutFilter.Resolver

extends Object
implements DelayedExecutor.Resolver<Connection<L>>
Class Inheritance
All Implemented Interfaces
org.glassfish.grizzly.utils.DelayedExecutor.Resolver

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public long
public boolean
public void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

Resolverback to summary
private Resolver()

Method Detail

getTimeoutMillisback to summary
public long getTimeoutMillis(final Connection<L> connection)

Implements org.glassfish.grizzly.utils.DelayedExecutor.Resolver.getTimeoutMillis.

Annotations
@Override
removeTimeoutback to summary
public boolean removeTimeout(final Connection<L> connection)

Implements org.glassfish.grizzly.utils.DelayedExecutor.Resolver.removeTimeout.

Annotations
@Override
setTimeoutMillisback to summary
public void setTimeoutMillis(final Connection<L> connection, final long timeoutMillis)

Implements org.glassfish.grizzly.utils.DelayedExecutor.Resolver.setTimeoutMillis.

Annotations
@Override
org.glassfish.grizzly.utils back to summary

public Interface IdleTimeoutFilter.TimeoutHandler


Method Summary

Modifier and TypeMethod and Description
public void
onTimeout(final Connection<L> c)

Method Detail

onTimeoutback to summary
public void onTimeout(final Connection<L> c)
org.glassfish.grizzly.utils back to summary

public Interface IdleTimeoutFilter.TimeoutResolver

Known Direct Implementers
org.glassfish.grizzly.utils.IdleTimeoutFilter.IdleTimeoutResolver

Method Summary

Modifier and TypeMethod and Description
public long

Method Detail

getTimeoutback to summary
public long getTimeout(FilterChainContext ctx)