JF, I try directly your code.. first you did a typo.. second line : you
wrote shk.. it's skh :)
but if I check at the commit logs :
Sending grizzly
Sending grizzly/src/main/java/com/sun/grizzly/BaseSelectionKeyHandler.java
Sending grizzly/src/main/java/com/sun/grizzly/SSLConnectorHandler.java
Sending grizzly/src/main/java/com/sun/grizzly/TCPConnectorHandler.java
Sending grizzly/src/main/java/com/sun/grizzly/UDPConnectorHandler.java
Sending
grizzly/src/main/java/com/sun/grizzly/async/AbstractAsyncQueueReader.java
Sending
grizzly/src/main/java/com/sun/grizzly/async/AbstractAsyncQueueWriter.java
Sending grizzly/src/main/java/com/sun/grizzly/async/TCPAsyncQueueReader.java
Sending grizzly/src/main/java/com/sun/grizzly/async/TCPAsyncQueueWriter.java
Sending grizzly/src/main/java/com/sun/grizzly/async/UDPAsyncQueueWriter.java
Sending grizzly/src/main/java/com/sun/grizzly/filter/ReadFilter.java
Adding
grizzly/src/main/java/com/sun/grizzly/util/ConnectionCloseHandler.java
Sending grizzly/src/main/java/com/sun/grizzly/util/InputReader.java
Sending grizzly/src/main/java/com/sun/grizzly/util/OutputWriter.java
you didn't commit Handler or SelectionKeyHandler. I don't have the method :
skh.setConnectionCloseHandler in the interface.
and if I look into the code the method setSelectionKeyHandler is deprecated.
f_controller.setSelectionKeyHandler(skh);
here my init method
/**
* Init
*/
@SuppressWarnings("unchecked")
public void init(){
if(s_logger.isDebugEnabled()){
s_logger.debug("listening for incomming TCP Connections on port
: " + f_port);
}
try {
f_controller = new Controller();
TCPSelectorHandler tcpSelectorHandler = new
TCPSelectorHandler();
tcpSelectorHandler.setPort(f_port);
Pipeline pipeline = new DefaultPipeline();
pipeline.setMaxThreads(5);
f_controller.setPipeline(pipeline);
tcpSelectorHandler.setSelectionKeyHandler(new
BaseSelectionKeyHandler());
f_controller.addSelectorHandler(tcpSelectorHandler);
SelectionKeyHandler skh = new DefaultSelectionKeyHandler();
skh.setConnectionCloseHandler(new ConnectionCloseHandler() {
public void locallyClosed(SelectionKey key) {
s_logger.debug(key + " is being locally cancelled");
}
public void remotlyClosed(SelectionKey key) {
s_logger.debug(key + " is being remotly cancelled
(connection closed)");
}
});
f_controller.setSelectionKeyHandler(skh);
QuoteQueryProtocolFilter protocolParser = new
QuoteQueryProtocolFilter();
QuoteQueryManagerFilter quoteManagerFilter = new
QuoteQueryManagerFilter(f_quoteManager);
final ProtocolChain protocolChain = new DefaultProtocolChain();
protocolChain.addFilter(protocolParser);
protocolChain.addFilter(quoteManagerFilter);
((DefaultProtocolChain)
protocolChain).setContinuousExecution(true);
ProtocolChainInstanceHandler pciHandler = new
DefaultProtocolChainInstanceHandler() {
public boolean offer(ProtocolChain protocolChain) {
return false;
}
public ProtocolChain poll() {
return protocolChain;
}
};
f_controller.setProtocolChainInstanceHandler(pciHandler);
try {
f_controller.start();
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception e) {
f_quoteManager.exit(-10);
}
}
2008/11/25 Survivant 00 <survivant00_at_gmail.com>
> I reopen the bug, but not sure if I did it correctly.
>
> here what I have.
>
>
> tcpSelectorHandler.setSelectionKeyHandler(new BaseSelectionKeyHandler(){
>
> public void locallyClosed(SelectionKey key) {
> s_logger.debug(key + " is being locally cancelled");
> }
>
> public void remotlyClosed(SelectionKey key) {
> s_logger.debug(key + " is being remotly cancelled
> (connection closed)");
> }
> });
>
> f_controller.addSelectorHandler(tcpSelectorHandler);
>
> if I open a telnet connection and close it, I won't be notify.
>
> but I didn't use ConnectionCloseHandler.
>
> Can I mix the 2 handlers ?
>
>
>
>
> 2008/11/24 Jeanfrancois Arcand <Jeanfrancois.Arcand_at_sun.com>
>
> Salut,
>>
>> I've added a new Handler for managing local and remote connection close.
>> The new ConnectionCloseHandler[1] can be configured on any class that
>> extends our BaseSelectionKeyHandler (like DefaultSelectionKeyHandler):
>>
>> SelectionKeyHandler skh = new DefaultSelectionKeyHandler();
>> shk.setConnectionCloseHandler(new ConnectionCloseHandler() {
>>
>> public void locallyClosed(SelectionKey key) {
>> logger.info(key + " is being locally cancelled");
>> }
>>
>> public void remotlyClosed(SelectionKey key) {
>> logger.fine(key + " is being remotly cancelled (connection
>> closed)");
>> }
>> });
>>
>> controller.setSelectionKeyHandler(skh);
>>
>> Those two methods gets invoked when any of the following condition
>> happens:
>>
>> 1. Any IOException occurs on I/O operations (read/write)
>> 2. When the read() or write() operation return -1
>>
>> Please try it :-)
>>
>> A+
>>
>> -- Jeanfrancois
>>
>> [1]
>> https://grizzly.dev.java.net/nonav/apidocs/com/sun/grizzly/util/ConnectionCloseHandler.html
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>
>>
>