You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2016/02/12 17:18:04 UTC
[1/3] mina git commit: Fixed some warnings
Repository: mina
Updated Branches:
refs/heads/2.0 6f9992e92 -> a7d16a8a9
Fixed some warnings
Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/ab3b9333
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/ab3b9333
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/ab3b9333
Branch: refs/heads/2.0
Commit: ab3b93337dacd1ff7f6473ce71efa7b277b96019
Parents: 53120dc
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Wed Feb 10 09:40:46 2016 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Wed Feb 10 09:40:46 2016 +0100
----------------------------------------------------------------------
.../org/apache/mina/example/echoserver/EchoProtocolHandler.java | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina/blob/ab3b9333/mina-example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java
----------------------------------------------------------------------
diff --git a/mina-example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java b/mina-example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java
index ffc2bdb..4524812 100644
--- a/mina-example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java
+++ b/mina-example/src/main/java/org/apache/mina/example/echoserver/EchoProtocolHandler.java
@@ -20,12 +20,10 @@
package org.apache.mina.example.echoserver;
import org.apache.mina.core.buffer.IoBuffer;
-import org.apache.mina.core.future.WriteFuture;
import org.apache.mina.core.service.IoHandler;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
-import org.apache.mina.core.write.WriteRequest;
import org.apache.mina.filter.ssl.SslFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -63,7 +61,7 @@ public class EchoProtocolHandler extends IoHandlerAdapter {
@Override
public void exceptionCaught(IoSession session, Throwable cause) {
- session.close(true);
+ session.closeNow();
}
@Override
[2/3] mina git commit: Applied correctly the patch submitted by
Terence Marks (https://issues.apache.org/jira/browse/DIRMINA-1019) that I
stupidely fucked up before injecting it a first time. My bad.
Posted by el...@apache.org.
Applied correctly the patch submitted by Terence Marks
(https://issues.apache.org/jira/browse/DIRMINA-1019) that I stupidely
fucked up before injecting it a first time. My bad.
Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/1d437477
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/1d437477
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/1d437477
Branch: refs/heads/2.0
Commit: 1d43747721ea26664bf272738f6c33b6439cef30
Parents: ab3b933
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Fri Feb 12 11:33:29 2016 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Fri Feb 12 11:33:29 2016 +0100
----------------------------------------------------------------------
.../org/apache/mina/filter/ssl/SslHandler.java | 43 ++++++++++++--------
1 file changed, 27 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina/blob/1d437477/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java b/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
index 6706627..fa51002 100644
--- a/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
+++ b/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
@@ -23,6 +23,7 @@ import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.ReentrantLock;
import javax.net.ssl.SSLEngine;
@@ -115,7 +116,11 @@ class SslHandler {
* for data being produced during the handshake). */
private boolean writingEncryptedData;
+ /** A lock to protect the SSL flush of events */
private ReentrantLock sslLock = new ReentrantLock();
+
+ /** A counter of schedules events */
+ private final AtomicInteger scheduled_events = new AtomicInteger(0);
/**
* Create a new SSL Handler, and initialize it.
@@ -300,24 +305,29 @@ class SslHandler {
}
/* no qualifier */void flushScheduledEvents() {
- // Fire events only when the lock is available for this handler.
- IoFilterEvent event;
- try {
- sslLock.lock();
+ scheduled_events.incrementAndGet();
- // We need synchronization here inevitably because filterWrite can be
- // called simultaneously and cause 'bad record MAC' integrity error.
- while ((event = filterWriteEventQueue.poll()) != null) {
- NextFilter nextFilter = event.getNextFilter();
- nextFilter.filterWrite(session, (WriteRequest) event.getParameter());
+ // Fire events only when the lock is available for this handler.
+ if (sslLock.tryLock()) {
+ IoFilterEvent event;
+
+ try {
+ do {
+ // We need synchronization here inevitably because filterWrite can be
+ // called simultaneously and cause 'bad record MAC' integrity error.
+ while ((event = filterWriteEventQueue.poll()) != null) {
+ NextFilter nextFilter = event.getNextFilter();
+ nextFilter.filterWrite(session, (WriteRequest) event.getParameter());
+ }
+
+ while ((event = messageReceivedEventQueue.poll()) != null) {
+ NextFilter nextFilter = event.getNextFilter();
+ nextFilter.messageReceived(session, event.getParameter());
+ }
+ } while (scheduled_events.decrementAndGet() > 0);
+ } finally {
+ sslLock.unlock();
}
- } finally {
- sslLock.unlock();
- }
-
- while ((event = messageReceivedEventQueue.poll()) != null) {
- NextFilter nextFilter = event.getNextFilter();
- nextFilter.messageReceived(session, event.getParameter());
}
}
@@ -440,6 +450,7 @@ class SslHandler {
while (src.hasRemaining()) {
SSLEngineResult result = sslEngine.wrap(src, outNetBuffer.buf());
+
if (result.getStatus() == SSLEngineResult.Status.OK) {
if (result.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_TASK) {
doTasks();
[3/3] mina git commit: Merge branch '2.0' of
https://git-wip-us.apache.org/repos/asf/mina into 2.0
Posted by el...@apache.org.
Merge branch '2.0' of https://git-wip-us.apache.org/repos/asf/mina into 2.0
Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/a7d16a8a
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/a7d16a8a
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/a7d16a8a
Branch: refs/heads/2.0
Commit: a7d16a8a933086bca0a2b7c4d638328b6602fa48
Parents: 1d43747 6f9992e
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Fri Feb 12 17:17:43 2016 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Fri Feb 12 17:17:43 2016 +0100
----------------------------------------------------------------------
NOTICE-bin.txt | 2 +-
NOTICE.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------