You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tw...@apache.org on 2022/11/05 16:17:54 UTC

[mina-sshd] branch master updated: MinaSession: avoid synthetic accesses

This is an automated email from the ASF dual-hosted git repository.

twolf pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git


The following commit(s) were added to refs/heads/master by this push:
     new bba481a9b MinaSession: avoid synthetic accesses
bba481a9b is described below

commit bba481a9bd7e52c4552f586dd10339e792df7f44
Author: Thomas Wolf <tw...@apache.org>
AuthorDate: Sat Nov 5 16:29:11 2022 +0100

    MinaSession: avoid synthetic accesses
---
 .../java/org/apache/sshd/mina/MinaSession.java     | 74 ++++++++++++----------
 1 file changed, 40 insertions(+), 34 deletions(-)

diff --git a/sshd-mina/src/main/java/org/apache/sshd/mina/MinaSession.java b/sshd-mina/src/main/java/org/apache/sshd/mina/MinaSession.java
index 93310e1bc..9fda615cf 100644
--- a/sshd-mina/src/main/java/org/apache/sshd/mina/MinaSession.java
+++ b/sshd-mina/src/main/java/org/apache/sshd/mina/MinaSession.java
@@ -126,40 +126,7 @@ public class MinaSession extends AbstractInnerCloseable implements IoSession {
 
     @Override
     protected Closeable getInnerCloseable() {
-        return new IoBaseCloseable() {
-            @SuppressWarnings("synthetic-access")
-            private final DefaultCloseFuture future = new DefaultCloseFuture(MinaSession.this.toString(), futureLock);
-
-            @SuppressWarnings("synthetic-access")
-            @Override
-            public boolean isClosing() {
-                return session.isClosing();
-            }
-
-            @SuppressWarnings("synthetic-access")
-            @Override
-            public boolean isClosed() {
-                return !session.isConnected();
-            }
-
-            @Override
-            public void addCloseFutureListener(SshFutureListener<CloseFuture> listener) {
-                future.addListener(listener);
-            }
-
-            @Override
-            public void removeCloseFutureListener(SshFutureListener<CloseFuture> listener) {
-                future.removeListener(listener);
-            }
-
-            @SuppressWarnings("synthetic-access")
-            @Override
-            public org.apache.sshd.common.future.CloseFuture close(boolean immediately) {
-                org.apache.mina.core.future.CloseFuture cf = immediately ? session.closeNow() : session.closeOnFlush();
-                cf.addListener(f -> future.setValue(Boolean.TRUE));
-                return future;
-            }
-        };
+        return new IoSessionCloser(this.toString(), session, futureLock);
     }
 
     // NOTE !!! data buffer may NOT be re-used when method returns - at least until IoWriteFuture is signalled
@@ -219,6 +186,45 @@ public class MinaSession extends AbstractInnerCloseable implements IoSession {
         session.closeOnFlush();
     }
 
+    private static class IoSessionCloser extends IoBaseCloseable {
+
+        private final DefaultCloseFuture future;
+
+        private final org.apache.mina.core.session.IoSession session;
+
+        IoSessionCloser(String id, org.apache.mina.core.session.IoSession session, Object futureLock) {
+            this.session = session;
+            future = new DefaultCloseFuture(id, futureLock);
+        }
+
+        @Override
+        public boolean isClosing() {
+            return session.isClosing();
+        }
+
+        @Override
+        public boolean isClosed() {
+            return !session.isConnected();
+        }
+
+        @Override
+        public void addCloseFutureListener(SshFutureListener<CloseFuture> listener) {
+            future.addListener(listener);
+        }
+
+        @Override
+        public void removeCloseFutureListener(SshFutureListener<CloseFuture> listener) {
+            future.removeListener(listener);
+        }
+
+        @Override
+        public CloseFuture close(boolean immediately) {
+            org.apache.mina.core.future.CloseFuture cf = immediately ? session.closeNow() : session.closeOnFlush();
+            cf.addListener(f -> future.setValue(Boolean.TRUE));
+            return future;
+        }
+    }
+
     @Override
     public String toString() {
         return getClass().getSimpleName()