Author: jvermillard
Date: Sun Jul 10 19:40:42 2011
New Revision: 1144944
URL: http://svn.apache.org/viewvc?rev=1144944&view=rev
Log:
fixed some possible bugs using findbugs
Modified:
mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
mina/branches/3.0/core/src/test/java/filterchain/DefaultIoFilterChainTest.java
mina/branches/3.0/core/src/test/java/org/apache/mina/session/AbstractIoSessionTest.java
Modified:
mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
URL:
http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java?rev=1144944&r1=1144943&r2=1144944&view=diff
==============================================================================
---
mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
(original)
+++
mina/branches/3.0/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
Sun Jul 10 19:40:42 2011
@@ -54,7 +54,7 @@ public abstract class AbstractIoSession
/** The {@link SelectorProcessor} used for handling this session writing */
private SelectorProcessor writeProcessor;
-
+
/** The number of bytes read since this session has been created */
private volatile long readBytes;
@@ -72,16 +72,17 @@ public abstract class AbstractIoSession
/** unique identifier generator */
private static final AtomicLong NEXT_ID = new AtomicLong(0);
-
- protected Object stateMonitor = new Object();
+
+ protected final Object stateMonitor = new Object();
+
protected SessionState state;
/** is this session registered for being polled for write ready events */
AtomicBoolean registeredForWrite = new AtomicBoolean();
-
+
/** the queue of pending writes for the session, to be dequeued by the
{@link SelectorProcessor} */
private Queue<WriteRequest> writeQueue = new DefaultWriteQueue();
-
+
/**
* Create an {@link org.apache.mina.api.IoSession} with a unique
identifier (
* {@link org.apache.mina.api.IoSession#getId()}) and an associated {@link
IoService}
@@ -95,16 +96,17 @@ public abstract class AbstractIoSession
creationTime = System.currentTimeMillis();
this.service = service;
this.writeProcessor = writeProcessor;
-
+
LOG.debug("Created new session with id : {}", id);
synchronized (stateMonitor) {
- this.state=SessionState.CREATED;
- }
+ this.state = SessionState.CREATED;
+ }
}
public SessionState getState() {
return state;
}
+
/**
* {@inheritDoc}
*/
@@ -208,36 +210,36 @@ public abstract class AbstractIoSession
public Set<Object> getAttributeNames() {
return attributes.keySet();
}
-
+
/**
* {@inheritDoc}
*/
@Override
public void write(Object message) {
- LOG.debug("writing message {} to session {}",message,this);
- if (state == SessionState.CLOSED || state == SessionState.CLOSING) {
- // TODO actually we just just shallow the message if the
session is closed/closing
- LOG.error("writing to closed or cloing session");
- return;
- }
- writeQueue.add(new DefaultWriteRequest(message));
-
- // If it wasn't, we register this session as interested to write.
- // It's done in atomic fashion for avoiding two concurrent registering.
- if (!registeredForWrite.getAndSet(true)) {
- writeProcessor.flush(this);
- }
+ LOG.debug("writing message {} to session {}", message, this);
+ if (state == SessionState.CLOSED || state == SessionState.CLOSING) {
+ // TODO actually we just just shallow the message if the session
is closed/closing
+ LOG.error("writing to closed or cloing session");
+ return;
+ }
+ writeQueue.add(new DefaultWriteRequest(message));
+
+ // If it wasn't, we register this session as interested to write.
+ // It's done in atomic fashion for avoiding two concurrent registering.
+ if (!registeredForWrite.getAndSet(true)) {
+ writeProcessor.flush(this);
+ }
}
-
+
@Override
public IoFuture<Void> writeWithFuture(Object message) {
- write(message);
- // TODO implements IoFuture
- return null;
+ write(message);
+ // TODO implements IoFuture
+ return null;
}
-
+
@Override
public Queue<WriteRequest> getWriteQueue() {
- return writeQueue;
+ return writeQueue;
}
}
\ No newline at end of file
Modified:
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
URL:
http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java?rev=1144944&r1=1144943&r2=1144944&view=diff
==============================================================================
---
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
(original)
+++
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
Sun Jul 10 19:40:42 2011
@@ -144,8 +144,10 @@ public class NioSelectorProcessor implem
ServerSocketChannel channel = serverSocketChannels.get(address);
channel.socket().close();
channel.close();
- serverSocketChannels.remove(channel);
- LOGGER.debug("removing a server channel " + channel);
+ if (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();
}
@@ -374,7 +376,7 @@ public class NioSelectorProcessor implem
worker = null;
break;
}
- }finally {
+ } finally {
workerLock.unlock();
}
}
Modified:
mina/branches/3.0/core/src/test/java/filterchain/DefaultIoFilterChainTest.java
URL:
http://svn.apache.org/viewvc/mina/branches/3.0/core/src/test/java/filterchain/DefaultIoFilterChainTest.java?rev=1144944&r1=1144943&r2=1144944&view=diff
==============================================================================
---
mina/branches/3.0/core/src/test/java/filterchain/DefaultIoFilterChainTest.java
(original)
+++
mina/branches/3.0/core/src/test/java/filterchain/DefaultIoFilterChainTest.java
Sun Jul 10 19:40:42 2011
@@ -19,9 +19,7 @@
*/
package filterchain;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
import java.util.List;
@@ -95,7 +93,7 @@ public class DefaultIoFilterChainTest {
}
- private class DummyFilter implements IoFilter {
+ private static class DummyFilter implements IoFilter {
String id;
Modified:
mina/branches/3.0/core/src/test/java/org/apache/mina/session/AbstractIoSessionTest.java
URL:
http://svn.apache.org/viewvc/mina/branches/3.0/core/src/test/java/org/apache/mina/session/AbstractIoSessionTest.java?rev=1144944&r1=1144943&r2=1144944&view=diff
==============================================================================
---
mina/branches/3.0/core/src/test/java/org/apache/mina/session/AbstractIoSessionTest.java
(original)
+++
mina/branches/3.0/core/src/test/java/org/apache/mina/session/AbstractIoSessionTest.java
Sun Jul 10 19:40:42 2011
@@ -7,14 +7,13 @@ import junit.framework.Assert;
import org.apache.mina.api.IoFuture;
import org.apache.mina.api.IoService;
import org.apache.mina.api.IoSessionConfig;
-
import org.junit.Test;
public class AbstractIoSessionTest {
- private final class DummySession extends AbstractIoSession {
+ private static final class DummySession extends AbstractIoSession {
private DummySession(IoService service) {
- super(service,null);
+ super(service, null);
}
@Override
@@ -76,8 +75,7 @@ public class AbstractIoSessionTest {
@Test
public void testGetId() {
- Assert.assertNotSame((new DummySession(null)).getId(),
- (new DummySession(null)).getId());
+ Assert.assertNotSame((new DummySession(null)).getId(), (new
DummySession(null)).getId());
}