Author: jvermillard
Date: Thu May  3 19:21:55 2012
New Revision: 1333590

URL: http://svn.apache.org/viewvc?rev=1333590&view=rev
Log:
adding created session to the map of managed session of the service

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/service/AbstractIoService.java
    
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
    
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/service/AbstractIoService.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/service/AbstractIoService.java?rev=1333590&r1=1333589&r2=1333590&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/service/AbstractIoService.java 
(original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/service/AbstractIoService.java 
Thu May  3 19:21:55 2012
@@ -43,6 +43,7 @@ public abstract class AbstractIoService 
     /** The service state */
     private ServiceState state;
 
+    /** The placeholder of managed open sessions */
     private final Map<Long, IoSession> managedSessions = new 
ConcurrentHashMap<Long, IoSession>();
 
     /**
@@ -77,12 +78,15 @@ public abstract class AbstractIoService 
      * Create an AbstractIoService
      */
     protected AbstractIoService() {
-        state = ServiceState.NONE;
+        this.state = ServiceState.NONE;
     }
 
+    /**
+     * {@inheritDoc}
+     */
     @Override
     public Map<Long, IoSession> getManagedSessions() {
-        return managedSessions;
+        return this.managedSessions;
     }
 
     /**
@@ -90,7 +94,7 @@ public abstract class AbstractIoService 
      * {@inheritDoc}
      */
     @Override
-    public void addListeners(IoServiceListener... listeners) {
+    public void addListeners(final IoServiceListener... listeners) {
         if (listeners != null) {
             for (IoServiceListener listener : listeners) {
                 // Don't add an existing listener into the list
@@ -110,7 +114,7 @@ public abstract class AbstractIoService 
      * {@inheritDoc}
      */
     @Override
-    public void removeListeners(IoServiceListener... listeners) {
+    public void removeListeners(final IoServiceListener... listeners) {
         if (listeners != null) {
             for (IoServiceListener listener : listeners) {
                 this.listeners.remove(listener);
@@ -125,14 +129,16 @@ public abstract class AbstractIoService 
     /**
      * {@inheritDoc}
      */
+    @Override
     public final IoHandler getHandler() {
-        return handler;
+        return this.handler;
     }
 
     /**
      * {@inheritDoc}
      */
-    public final void setHandler(IoHandler handler) {
+    @Override
+    public final void setHandler(final IoHandler handler) {
         if (handler == null) {
             throw new IllegalArgumentException("handler cannot be null");
         }
@@ -150,84 +156,84 @@ public abstract class AbstractIoService 
      * @return true if the IoService is active
      */
     public boolean isActive() {
-        return state == ServiceState.ACTIVE;
+        return this.state == ServiceState.ACTIVE;
     }
 
     /**
      * @return true if the IoService is being disposed
      */
     public boolean isDisposing() {
-        return state == ServiceState.DISPOSING;
+        return this.state == ServiceState.DISPOSING;
     }
 
     /**
      * @return true if the IoService is disposed
      */
     public boolean isDisposed() {
-        return state == ServiceState.DISPOSED;
+        return this.state == ServiceState.DISPOSED;
     }
 
     /**
      * @return true if the IoService is suspended
      */
     public boolean isSuspended() {
-        return state == ServiceState.SUSPENDED;
+        return this.state == ServiceState.SUSPENDED;
     }
 
     /**
      * @return true if the IoService is created
      */
     public boolean isCreated() {
-        return state == ServiceState.CREATED;
+        return this.state == ServiceState.CREATED;
     }
 
     /**
      * Sets the IoService state to CREATED.
      */
     protected void setCreated() {
-        state = ServiceState.CREATED;
+        this.state = ServiceState.CREATED;
     }
 
     /**
      * Sets the IoService state to ACTIVE.
      */
     protected void setActive() {
-        state = ServiceState.ACTIVE;
+        this.state = ServiceState.ACTIVE;
     }
 
     /**
      * Sets the IoService state to DISPOSED.
      */
     protected void setDisposed() {
-        state = ServiceState.DISPOSED;
+        this.state = ServiceState.DISPOSED;
     }
 
     /**
      * Sets the IoService state to DISPOSING.
      */
     protected void setDisposing() {
-        state = ServiceState.DISPOSING;
+        this.state = ServiceState.DISPOSING;
     }
 
     /**
      * Sets the IoService state to SUSPENDED.
      */
     protected void setSuspended() {
-        state = ServiceState.SUSPENDED;
+        this.state = ServiceState.SUSPENDED;
     }
 
     /**
      * Initialize the IoService state
      */
     protected void initState() {
-        state = ServiceState.NONE;
+        this.state = ServiceState.NONE;
     }
 
     /**
      * Inform all current the listeners of the service activation.
      */
     protected void fireServiceActivated() {
-        for (IoServiceListener listener : listeners) {
+        for (IoServiceListener listener : this.listeners) {
             listener.serviceActivated(this);
         }
     }
@@ -236,21 +242,23 @@ public abstract class AbstractIoService 
      * Inform all current the listeners of the service desactivation.
      */
     protected void fireServiceInactivated() {
-        for (IoServiceListener listener : listeners) {
+        for (IoServiceListener listener : this.listeners) {
             listener.serviceInactivated(this);
         }
     }
 
-    public void fireSessionCreated(IoSession session) {
-        for (IoServiceListener listener : listeners) {
+    public void fireSessionCreated(final IoSession session) {
+        for (IoServiceListener listener : this.listeners) {
             listener.sessionCreated(session);
         }
+        this.managedSessions.put(session.getId(), session);
     }
 
-    public void fireSessionDestroyed(IoSession session) {
-        for (IoServiceListener listener : listeners) {
+    public void fireSessionDestroyed(final IoSession session) {
+        for (IoServiceListener listener : this.listeners) {
             listener.sessionDestroyed(session);
         }
+        this.managedSessions.remove(session.getId());
     }
 
     private IoFilter[] filters;
@@ -260,14 +268,14 @@ public abstract class AbstractIoService 
      */
     @Override
     public IoFilter[] getFilters() {
-        return filters;
+        return this.filters;
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public void setFilters(IoFilter... filters) {
+    public void setFilters(final IoFilter... filters) {
         this.filters = filters;
     }
 }
\ No newline at end of file

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java?rev=1333590&r1=1333589&r2=1333590&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
 Thu May  3 19:21:55 2012
@@ -73,18 +73,18 @@ public class NioSelectorProcessor implem
      */
     private static final long SELECT_TIMEOUT = 1000L;
 
-    private SelectorStrategy strategy;
+    private final SelectorStrategy strategy;
 
-    private Map<SocketAddress, ServerSocketChannel> serverSocketChannels = new 
ConcurrentHashMap<SocketAddress, ServerSocketChannel>();
+    private final Map<SocketAddress, ServerSocketChannel> serverSocketChannels 
= new ConcurrentHashMap<SocketAddress, ServerSocketChannel>();
 
     /** Read buffer for all the incoming bytes (default to 64Kb) */
-    private ByteBuffer readBuffer = ByteBuffer.allocate(64 * 1024);
+    private final ByteBuffer readBuffer = ByteBuffer.allocate(64 * 1024);
 
     /** the thread polling and processing the I/O events */
     private SelectorWorker worker = null;
 
     /** helper for detecting idleing sessions */
-    private IdleChecker idleChecker = new IndexedIdleChecker();
+    private final IdleChecker idleChecker = new IndexedIdleChecker();
 
     /** A queue containing the servers to bind to this selector */
     private final Queue<Object[]> serversToAdd = new 
ConcurrentLinkedQueue<Object[]>();
@@ -105,9 +105,9 @@ public class NioSelectorProcessor implem
 
     // Lock for Selector worker, using default. can look into fairness later.
     // We need to think about a lock less mechanism here.
-    private Lock workerLock = new ReentrantLock();
+    private final Lock workerLock = new ReentrantLock();
 
-    public NioSelectorProcessor(String name, SelectorStrategy strategy) {
+    public NioSelectorProcessor(final String name, final SelectorStrategy 
strategy) {
         this.strategy = strategy;
     }
 
@@ -116,10 +116,10 @@ public class NioSelectorProcessor implem
      * 
      * @param serverChannel
      */
-    private void add(ServerSocketChannel serverChannel, IoServer server) {
+    private void add(final ServerSocketChannel serverChannel, final IoServer 
server) {
         LOGGER.debug("adding a server channel {} for server {}", 
serverChannel, server);
-        serversToAdd.add(new Object[] { serverChannel, server });
-        wakeupWorker();
+        this.serversToAdd.add(new Object[] { serverChannel, server });
+        this.wakeupWorker();
     }
 
     /**
@@ -127,18 +127,18 @@ public class NioSelectorProcessor implem
      * FIXME : too much locking there ?
      */
     private void wakeupWorker() {
-        workerLock.lock();
+        this.workerLock.lock();
         try {
-            if (worker == null) {
-                worker = new SelectorWorker();
-                worker.start();
+            if (this.worker == null) {
+                this.worker = new SelectorWorker();
+                this.worker.start();
             }
         } finally {
-            workerLock.unlock();
+            this.workerLock.unlock();
         }
 
-        if (selector != null) {
-            selector.wakeup();
+        if (this.selector != null) {
+            this.selector.wakeup();
         }
     }
 
@@ -146,7 +146,7 @@ public class NioSelectorProcessor implem
      * {@inheritDoc}
      */
     @Override
-    public void bindAndAcceptAddress(IoServer server, SocketAddress address) 
throws IOException {
+    public void bindAndAcceptAddress(final IoServer server, final 
SocketAddress address) throws IOException {
         ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
 
         // FIXME : should be "genericified"
@@ -155,35 +155,36 @@ public class NioSelectorProcessor implem
         }
         serverSocketChannel.socket().bind(address);
         serverSocketChannel.configureBlocking(false);
-        serverSocketChannels.put(address, serverSocketChannel);
-        add(serverSocketChannel, server);
+        this.serverSocketChannels.put(address, serverSocketChannel);
+        this.add(serverSocketChannel, server);
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public void unbind(SocketAddress address) throws IOException {
-        ServerSocketChannel channel = serverSocketChannels.get(address);
+    public void unbind(final SocketAddress address) throws IOException {
+        ServerSocketChannel channel = this.serverSocketChannels.get(address);
         channel.socket().close();
         channel.close();
-        if (serverSocketChannels.remove(address) == null) {
+        if (this.serverSocketChannels.remove(address) == null) {
             LOGGER.warn("The server channel for address {} was already 
unbound", address);
         }
         LOGGER.debug("Removing a server channel {}", channel);
-        serversToRemove.add(channel);
-        wakeupWorker();
+        this.serversToRemove.add(channel);
+        this.wakeupWorker();
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public void createSession(IoService service, Object clientSocket) throws 
SSLException {
+    public void createSession(final IoService service, final Object 
clientSocket) throws SSLException {
         LOGGER.debug("create session");
         final SocketChannel socketChannel = (SocketChannel) clientSocket;
         final SocketSessionConfig config = (SocketSessionConfig) 
service.getSessionConfig();
-        final NioTcpSession session = new NioTcpSession(service, 
socketChannel, strategy.getSelectorForNewSession(this));
+        final NioTcpSession session = new NioTcpSession(service, socketChannel,
+                this.strategy.getSelectorForNewSession(this));
 
         try {
             socketChannel.configureBlocking(false);
@@ -254,20 +255,20 @@ public class NioSelectorProcessor implem
         session.processSessionCreated();
 
         // add the session to the queue for being added to the selector
-        sessionsToConnect.add(session);
-        wakeupWorker();
+        this.sessionsToConnect.add(session);
+        this.wakeupWorker();
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public void flush(AbstractIoSession session) {
+    public void flush(final AbstractIoSession session) {
         LOGGER.debug("scheduling session {} for writing", session);
         // add the session to the list of session to be registered for writing
-        flushingSessions.add((NioTcpSession) session);
+        this.flushingSessions.add((NioTcpSession) session);
         // wake the selector for unlocking the I/O thread
-        wakeupWorker();
+        this.wakeupWorker();
     }
 
     /**
@@ -276,19 +277,19 @@ public class NioSelectorProcessor implem
      */
     private class SelectorWorker extends Thread {
         // map for finding the keys associated with a given server
-        private Map<ServerSocketChannel, SelectionKey> serverKey = new 
HashMap<ServerSocketChannel, SelectionKey>();
+        private final Map<ServerSocketChannel, SelectionKey> serverKey = new 
HashMap<ServerSocketChannel, SelectionKey>();
 
         // map for finding read keys associated with a given session
-        private Map<NioTcpSession, SelectionKey> sessionReadKey = new 
HashMap<NioTcpSession, SelectionKey>();
+        private final Map<NioTcpSession, SelectionKey> sessionReadKey = new 
HashMap<NioTcpSession, SelectionKey>();
 
         @Override
         public void run() {
             try {
-                if (selector == null) {
+                if (NioSelectorProcessor.this.selector == null) {
                     LOGGER.debug("opening a new selector");
 
                     try {
-                        selector = Selector.open();
+                        NioSelectorProcessor.this.selector = Selector.open();
                     } catch (IOException e) {
                         LOGGER.error("IOException while opening a new 
Selector", e);
                     }
@@ -297,32 +298,33 @@ public class NioSelectorProcessor implem
                 for (;;) {
                     try {
                         // pop server sockets for removing
-                        if (serversToRemove.size() > 0) {
-                            processServerRemove();
+                        if (NioSelectorProcessor.this.serversToRemove.size() > 
0) {
+                            this.processServerRemove();
                         }
 
                         // pop new server sockets for accepting
-                        if (serversToAdd.size() > 0) {
-                            processServerAdd();
+                        if (NioSelectorProcessor.this.serversToAdd.size() > 0) 
{
+                            this.processServerAdd();
                         }
 
                         // pop new session for starting read/write
-                        if (sessionsToConnect.size() > 0) {
-                            processConnectSessions();
+                        if (NioSelectorProcessor.this.sessionsToConnect.size() 
> 0) {
+                            this.processConnectSessions();
                         }
 
                         // pop session for close, if any
-                        if (sessionsToClose.size() > 0) {
-                            processCloseSessions();
+                        if (NioSelectorProcessor.this.sessionsToClose.size() > 
0) {
+                            this.processCloseSessions();
                         }
 
                         LOGGER.debug("selecting...");
-                        int readyCount = selector.select(SELECT_TIMEOUT);
+                        int readyCount = 
NioSelectorProcessor.this.selector.select(SELECT_TIMEOUT);
                         LOGGER.debug("... done selecting : {}", readyCount);
 
                         if (readyCount > 0) {
                             // process selected keys
-                            Iterator<SelectionKey> selectedKeys = 
selector.selectedKeys().iterator();
+                            Iterator<SelectionKey> selectedKeys = 
NioSelectorProcessor.this.selector.selectedKeys()
+                                    .iterator();
 
                             // Loop on each SelectionKey and process any valid 
action
                             while (selectedKeys.hasNext()) {
@@ -333,18 +335,18 @@ public class NioSelectorProcessor implem
                                     continue;
                                 }
 
-                                selector.selectedKeys().remove(key);
+                                
NioSelectorProcessor.this.selector.selectedKeys().remove(key);
 
                                 if (key.isAcceptable()) {
-                                    processAccept(key);
+                                    this.processAccept(key);
                                 }
 
                                 if (key.isReadable()) {
-                                    processRead(key);
+                                    this.processRead(key);
                                 }
 
                                 if (key.isWritable()) {
-                                    processWrite(key);
+                                    this.processWrite(key);
                                 }
 
                             }
@@ -352,27 +354,27 @@ public class NioSelectorProcessor implem
 
                         // registering session with data in the write queue for
                         // writing
-                        while (!flushingSessions.isEmpty()) {
-                            processFlushSessions();
+                        while 
(!NioSelectorProcessor.this.flushingSessions.isEmpty()) {
+                            this.processFlushSessions();
                         }
                     } catch (IOException e) {
                         LOGGER.error("IOException while selecting selector", 
e);
                     }
 
                     // stop the worker if needed
-                    workerLock.lock();
+                    NioSelectorProcessor.this.workerLock.lock();
 
                     try {
-                        if (selector.keys().isEmpty()) {
-                            worker = null;
+                        if 
(NioSelectorProcessor.this.selector.keys().isEmpty()) {
+                            NioSelectorProcessor.this.worker = null;
                             break;
                         }
                     } finally {
-                        workerLock.unlock();
+                        NioSelectorProcessor.this.workerLock.unlock();
                     }
 
                     // check for idle events
-                    idleChecker.processIdleSession(System.currentTimeMillis());
+                    
NioSelectorProcessor.this.idleChecker.processIdleSession(System.currentTimeMillis());
                 }
             } catch (Exception e) {
                 LOGGER.error("Unexpected exception : ", e);
@@ -383,9 +385,9 @@ public class NioSelectorProcessor implem
          * Handles the servers removal
          */
         private void processServerRemove() {
-            while (!serversToRemove.isEmpty()) {
-                ServerSocketChannel channel = serversToRemove.poll();
-                SelectionKey key = serverKey.remove(channel);
+            while (!NioSelectorProcessor.this.serversToRemove.isEmpty()) {
+                ServerSocketChannel channel = 
NioSelectorProcessor.this.serversToRemove.poll();
+                SelectionKey key = this.serverKey.remove(channel);
 
                 if (key == null) {
                     LOGGER.error("The server socket was already removed of the 
selector");
@@ -400,10 +402,10 @@ public class NioSelectorProcessor implem
          * Handles the servers addition
          */
         private void processServerAdd() throws IOException {
-            while (!serversToAdd.isEmpty()) {
-                Object[] tmp = serversToAdd.poll();
+            while (!NioSelectorProcessor.this.serversToAdd.isEmpty()) {
+                Object[] tmp = NioSelectorProcessor.this.serversToAdd.poll();
                 ServerSocketChannel channel = (ServerSocketChannel) tmp[0];
-                SelectionKey key = channel.register(selector, 
SelectionKey.OP_ACCEPT);
+                SelectionKey key = 
channel.register(NioSelectorProcessor.this.selector, SelectionKey.OP_ACCEPT);
                 key.attach(tmp);
                 LOGGER.debug("Accepted the server on this selector : {}", key);
             }
@@ -413,11 +415,12 @@ public class NioSelectorProcessor implem
          * Handles all the sessions that must be connected
          */
         private void processConnectSessions() throws IOException {
-            while (!sessionsToConnect.isEmpty()) {
-                NioTcpSession session = sessionsToConnect.poll();
-                SelectionKey key = 
session.getSocketChannel().register(selector, SelectionKey.OP_READ);
+            while (!NioSelectorProcessor.this.sessionsToConnect.isEmpty()) {
+                NioTcpSession session = 
NioSelectorProcessor.this.sessionsToConnect.poll();
+                SelectionKey key = 
session.getSocketChannel().register(NioSelectorProcessor.this.selector,
+                        SelectionKey.OP_READ);
                 key.attach(session);
-                sessionReadKey.put(session, key);
+                this.sessionReadKey.put(session, key);
 
                 // Switch to CONNECTED, only if the session is not secured, as 
the SSL Handshake
                 // will occur later.
@@ -428,8 +431,8 @@ public class NioSelectorProcessor implem
                     ((AbstractIoService) 
session.getService()).fireSessionCreated(session);
                     session.processSessionOpened();
                     long time = System.currentTimeMillis();
-                    idleChecker.sessionRead(session, time);
-                    idleChecker.sessionWritten(session, time);
+                    NioSelectorProcessor.this.idleChecker.sessionRead(session, 
time);
+                    
NioSelectorProcessor.this.idleChecker.sessionWritten(session, time);
                 }
             }
         }
@@ -438,10 +441,10 @@ public class NioSelectorProcessor implem
          * Handles all the sessions that must be closed
          */
         private void processCloseSessions() throws IOException {
-            while (!sessionsToClose.isEmpty()) {
-                NioTcpSession session = sessionsToClose.poll();
+            while (!NioSelectorProcessor.this.sessionsToClose.isEmpty()) {
+                NioTcpSession session = 
NioSelectorProcessor.this.sessionsToClose.poll();
 
-                SelectionKey key = sessionReadKey.remove(session);
+                SelectionKey key = this.sessionReadKey.remove(session);
                 key.cancel();
 
                 // closing underlying socket
@@ -455,7 +458,7 @@ public class NioSelectorProcessor implem
         /**
          * Processes the Accept action for the given SelectionKey
          */
-        private void processAccept(SelectionKey key) throws IOException {
+        private void processAccept(final SelectionKey key) throws IOException {
             LOGGER.debug("acceptable new client {}", key);
             ServerSocketChannel serverSocket = (ServerSocketChannel) 
((Object[]) key.attachment())[0];
             IoServer server = (IoServer) (((Object[]) key.attachment())[1]);
@@ -463,29 +466,30 @@ public class NioSelectorProcessor implem
             SocketChannel newClientChannel = serverSocket.accept();
             LOGGER.debug("client accepted");
             // and give it's to the strategy
-            
strategy.getSelectorForNewSession(NioSelectorProcessor.this).createSession(server,
 newClientChannel);
+            
NioSelectorProcessor.this.strategy.getSelectorForNewSession(NioSelectorProcessor.this).createSession(
+                    server, newClientChannel);
         }
 
         /**
          * Processes the Read action for the given SelectionKey
          */
-        private void processRead(SelectionKey key) throws IOException {
+        private void processRead(final SelectionKey key) throws IOException {
             LOGGER.debug("readable client {}", key);
             NioTcpSession session = (NioTcpSession) key.attachment();
             SocketChannel channel = session.getSocketChannel();
-            readBuffer.clear();
-            int readCount = channel.read(readBuffer);
+            NioSelectorProcessor.this.readBuffer.clear();
+            int readCount = channel.read(NioSelectorProcessor.this.readBuffer);
 
             LOGGER.debug("read {} bytes", readCount);
 
             if (readCount < 0) {
                 // session closed by the remote peer
                 LOGGER.debug("session closed by the remote peer");
-                sessionsToClose.add(session);
+                NioSelectorProcessor.this.sessionsToClose.add(session);
             } else {
                 // we have read some data
                 // limit at the current position & rewind buffer back to start 
& push to the chain
-                readBuffer.flip();
+                NioSelectorProcessor.this.readBuffer.flip();
 
                 if (session.isSecured()) {
                     // We are reading data over a SSL/TLS encrypted 
connection. Redirect
@@ -496,20 +500,20 @@ public class NioSelectorProcessor implem
                         throw new IllegalStateException();
                     }
 
-                    sslHelper.processRead(session, readBuffer);
+                    sslHelper.processRead(session, 
NioSelectorProcessor.this.readBuffer);
                 } else {
                     // Plain message, not encrypted : go directly to the chain
-                    session.processMessageReceived(readBuffer);
+                    
session.processMessageReceived(NioSelectorProcessor.this.readBuffer);
                 }
 
-                idleChecker.sessionRead(session, System.currentTimeMillis());
+                NioSelectorProcessor.this.idleChecker.sessionRead(session, 
System.currentTimeMillis());
             }
         }
 
         /**
          * Processes the Write action for the given SelectionKey
          */
-        private void processWrite(SelectionKey key) throws IOException {
+        private void processWrite(final SelectionKey key) throws IOException {
             NioTcpSession session = (NioTcpSession) key.attachment();
 
             LOGGER.debug("writable session : {}", session);
@@ -538,7 +542,7 @@ public class NioSelectorProcessor implem
                     session.incrementWrittenBytes(wrote);
                     LOGGER.debug("wrote {} bytes to {}", wrote, session);
 
-                    idleChecker.sessionWritten(session, 
System.currentTimeMillis());
+                    
NioSelectorProcessor.this.idleChecker.sessionWritten(session, 
System.currentTimeMillis());
 
                     if (buf.remaining() == 0) {
                         // completed write request, let's remove it
@@ -572,16 +576,16 @@ public class NioSelectorProcessor implem
                 } else {
                     // a key registered for read ? (because we can have a
                     // Selector for reads and another for the writes
-                    SelectionKey readKey = sessionReadKey.get(session);
+                    SelectionKey readKey = this.sessionReadKey.get(session);
 
                     if (readKey != null) {
                         LOGGER.debug("registering key for only reading");
-                        SelectionKey mykey = 
session.getSocketChannel().register(selector, SelectionKey.OP_READ,
-                                session);
-                        sessionReadKey.put(session, mykey);
+                        SelectionKey mykey = 
session.getSocketChannel().register(NioSelectorProcessor.this.selector,
+                                SelectionKey.OP_READ, session);
+                        this.sessionReadKey.put(session, mykey);
                     } else {
                         LOGGER.debug("cancel key for writing");
-                        session.getSocketChannel().keyFor(selector).cancel();
+                        
session.getSocketChannel().keyFor(NioSelectorProcessor.this.selector).cancel();
                     }
                 }
             }
@@ -591,19 +595,19 @@ public class NioSelectorProcessor implem
          * Flushes the sessions
          */
         private void processFlushSessions() throws IOException {
-            NioTcpSession session = flushingSessions.poll();
+            NioTcpSession session = 
NioSelectorProcessor.this.flushingSessions.poll();
             // a key registered for read ? (because we can have a
             // Selector for reads and another for the writes
-            SelectionKey readKey = sessionReadKey.get(session);
+            SelectionKey readKey = this.sessionReadKey.get(session);
 
             if (readKey != null) {
                 // register for read/write
-                SelectionKey key = 
session.getSocketChannel().register(selector,
+                SelectionKey key = 
session.getSocketChannel().register(NioSelectorProcessor.this.selector,
                         SelectionKey.OP_READ | SelectionKey.OP_WRITE, session);
 
-                sessionReadKey.put(session, key);
+                this.sessionReadKey.put(session, key);
             } else {
-                session.getSocketChannel().register(selector, 
SelectionKey.OP_WRITE, session);
+                
session.getSocketChannel().register(NioSelectorProcessor.this.selector, 
SelectionKey.OP_WRITE, session);
             }
         }
     }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java?rev=1333590&r1=1333589&r2=1333590&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java
 Thu May  3 19:21:55 2012
@@ -26,8 +26,6 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.apache.mina.service.SelectorStrategy;
-import org.apache.mina.service.idlechecker.IdleChecker;
-import org.apache.mina.service.idlechecker.IndexedIdleChecker;
 import org.apache.mina.transport.tcp.AbstractTcpServer;
 import org.apache.mina.transport.tcp.DefaultSocketSessionConfig;
 import org.apache.mina.transport.tcp.NioSelectorProcessor;
@@ -43,20 +41,17 @@ import org.slf4j.LoggerFactory;
 public class NioTcpServer extends AbstractTcpServer {
     static final Logger LOG = LoggerFactory.getLogger(NioTcpServer.class);
 
-    // the idle checker is used for detecting read or write idle session 
-    private IdleChecker idleChecker = new IndexedIdleChecker();
-
     // list of bound addresses
-    private Set<SocketAddress> addresses = Collections.synchronizedSet(new 
HashSet<SocketAddress>());
+    private final Set<SocketAddress> addresses = 
Collections.synchronizedSet(new HashSet<SocketAddress>());
 
     // the strategy for dispatching servers and client to selector threads.
-    private SelectorStrategy strategy;
+    private final SelectorStrategy strategy;
 
     private SocketSessionConfig config;
 
     private boolean reuseAddress = false;
 
-    public NioTcpServer(SelectorStrategy strategy) {
+    public NioTcpServer(final SelectorStrategy strategy) {
         super();
         this.strategy = strategy;
         this.config = new DefaultSocketSessionConfig();
@@ -64,25 +59,25 @@ public class NioTcpServer extends Abstra
 
     @Override
     public SocketSessionConfig getSessionConfig() {
-        return config;
+        return this.config;
     }
 
-    public void setSessionConfig(SocketSessionConfig config) {
+    public void setSessionConfig(final SocketSessionConfig config) {
         this.config = config;
     }
 
     @Override
-    public void setReuseAddress(boolean reuseAddress) {
+    public void setReuseAddress(final boolean reuseAddress) {
         this.reuseAddress = reuseAddress;
     }
 
     @Override
     public boolean isReuseAddress() {
-        return reuseAddress;
+        return this.reuseAddress;
     }
 
     @Override
-    public void bind(SocketAddress... localAddress) throws IOException {
+    public void bind(final SocketAddress... localAddress) throws IOException {
         if (localAddress == null) {
             // We should at least have one address to bind on
             throw new IllegalStateException("LocalAdress cannot be null");
@@ -91,18 +86,18 @@ public class NioTcpServer extends Abstra
         for (SocketAddress address : localAddress) {
             // check if the address is already bound
             synchronized (this) {
-                if (addresses.contains(address)) {
+                if (this.addresses.contains(address)) {
                     throw new IOException("address " + address + " already 
bound");
                 }
 
                 LOG.debug("binding address {}", address);
 
-                addresses.add(address);
-                NioSelectorProcessor processor = (NioSelectorProcessor) 
strategy.getSelectorForBindNewAddress();
+                this.addresses.add(address);
+                NioSelectorProcessor processor = (NioSelectorProcessor) 
this.strategy.getSelectorForBindNewAddress();
                 processor.bindAndAcceptAddress(this, address);
-                if (addresses.size() == 1) {
+                if (this.addresses.size() == 1) {
                     // it's the first address bound, let's fire the event
-                    fireServiceActivated();
+                    this.fireServiceActivated();
                 }
             }
         }
@@ -110,18 +105,18 @@ public class NioTcpServer extends Abstra
 
     @Override
     public Set<SocketAddress> getLocalAddresses() {
-        return addresses;
+        return this.addresses;
     }
 
     @Override
-    public void unbind(SocketAddress... localAddresses) throws IOException {
+    public void unbind(final SocketAddress... localAddresses) throws 
IOException {
         for (SocketAddress socketAddress : localAddresses) {
             LOG.debug("unbinding {}", socketAddress);
             synchronized (this) {
-                strategy.unbind(socketAddress);
-                addresses.remove(socketAddress);
-                if (addresses.isEmpty()) {
-                    fireServiceInactivated();
+                this.strategy.unbind(socketAddress);
+                this.addresses.remove(socketAddress);
+                if (this.addresses.isEmpty()) {
+                    this.fireServiceInactivated();
                 }
             }
         }
@@ -129,8 +124,8 @@ public class NioTcpServer extends Abstra
 
     @Override
     public void unbindAll() throws IOException {
-        for (SocketAddress socketAddress : addresses) {
-            unbind(socketAddress);
+        for (SocketAddress socketAddress : this.addresses) {
+            this.unbind(socketAddress);
         }
     }
 


Reply via email to