You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/11/22 01:44:10 UTC

svn commit: r597276 - in /mina/trunk: core/src/main/java/org/apache/mina/common/ transport-apr/src/main/java/org/apache/mina/transport/socket/apr/

Author: trustin
Date: Wed Nov 21 16:44:09 2007
New Revision: 597276

URL: http://svn.apache.org/viewvc?rev=597276&view=rev
Log:
* added more 'throws Exception' clause to AbstractPolling* classes to support various cases


Modified:
    mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingConnectionlessIoAcceptor.java
    mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoAcceptor.java
    mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java
    mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprDatagramSession.java
    mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSession.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingConnectionlessIoAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingConnectionlessIoAcceptor.java?rev=597276&r1=597275&r2=597276&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingConnectionlessIoAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingConnectionlessIoAcceptor.java Wed Nov 21 16:44:09 2007
@@ -97,7 +97,7 @@
     protected abstract boolean isWritable(H handle);
     protected abstract SocketAddress receive(H handle, IoBuffer buffer) throws Exception;
     protected abstract int send(T session, IoBuffer buffer, SocketAddress remoteAddress) throws Exception;
-    protected abstract T newSession(H handle, SocketAddress remoteAddress);
+    protected abstract T newSession(H handle, SocketAddress remoteAddress) throws Exception;
     protected abstract void setInterestedInWrite(T session, boolean interested) throws Exception;
 
 
@@ -166,12 +166,20 @@
                         "Can't create a session from a unbound service.");
             }
 
-            return newSessionWithoutLock(remoteAddress, localAddress);
+            try {
+                return newSessionWithoutLock(remoteAddress, localAddress);
+            } catch (RuntimeException e) {
+                throw e;
+            } catch (Error e) {
+                throw e;
+            } catch (Exception e) {
+                throw new RuntimeIoException("Failed to create a session.", e);
+            }
         }
     }
 
     private IoSession newSessionWithoutLock(
-            SocketAddress remoteAddress, SocketAddress localAddress) {
+            SocketAddress remoteAddress, SocketAddress localAddress) throws Exception {
         H handle = boundHandles.get(localAddress);
         if (handle == null) {
             throw new IllegalArgumentException("Unknown local address: " + localAddress);

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoAcceptor.java?rev=597276&r1=597275&r2=597276&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoAcceptor.java Wed Nov 21 16:44:09 2007
@@ -106,7 +106,7 @@
     protected abstract Iterator<H> selectedHandles();
     protected abstract H bind(SocketAddress localAddress) throws Exception;
     protected abstract SocketAddress localAddress(H handle) throws Exception;
-    protected abstract T accept(IoProcessor<T> processor, H handle);
+    protected abstract T accept(IoProcessor<T> processor, H handle) throws Exception;
     protected abstract void unbind(H handle) throws Exception;
 
     @Override
@@ -241,7 +241,7 @@
          * and passing the session object to the SocketIoProcessor class.
          */
         @SuppressWarnings("unchecked")
-        private void processHandles(Iterator<H> handles) {
+        private void processHandles(Iterator<H> handles) throws Exception {
             while (handles.hasNext()) {
                 H handle = handles.next();
                 handles.remove();

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java?rev=597276&r1=597275&r2=597276&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java Wed Nov 21 16:44:09 2007
@@ -89,7 +89,7 @@
     protected abstract H newHandle(SocketAddress localAddress) throws Exception;
     protected abstract boolean connect(H handle, SocketAddress remoteAddress) throws Exception;
     protected abstract void finishConnect(H handle) throws Exception;
-    protected abstract T newSession(IoProcessor<T> processor, H handle);
+    protected abstract T newSession(IoProcessor<T> processor, H handle) throws Exception;
     protected abstract void destroy(H handle) throws Exception;
     protected abstract void wakeup();
     protected abstract boolean selectable();

Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprDatagramSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprDatagramSession.java?rev=597276&r1=597275&r2=597276&view=diff
==============================================================================
--- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprDatagramSession.java (original)
+++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprDatagramSession.java Wed Nov 21 16:44:09 2007
@@ -24,8 +24,9 @@
     private final DatagramSessionConfig config = new SessionConfigImpl();
     
     AprDatagramSession(
-            IoService service, IoProcessor<AprSession> processor, long descriptor) throws Exception {
-        super(service, processor, descriptor);
+            IoService service, IoProcessor<AprSession> processor,
+            long descriptor, InetSocketAddress remoteAddress) throws Exception {
+        super(service, processor, descriptor, remoteAddress);
         this.config.setAll(service.getSessionConfig());
     }
 

Modified: mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSession.java?rev=597276&r1=597275&r2=597276&view=diff
==============================================================================
--- mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSession.java (original)
+++ mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSession.java Wed Nov 21 16:44:09 2007
@@ -71,6 +71,20 @@
         this.localAddress = new InetSocketAddress(Address.getip(la), Address.getInfo(la).port);
     }
 
+    AprSession(
+            IoService service, IoProcessor<AprSession> processor,
+            long descriptor, InetSocketAddress remoteAddress) throws Exception {
+        this.service = service;
+        this.processor = processor;
+        this.handler = service.getHandler();
+        this.descriptor = descriptor;
+        
+        long la = Address.get(Socket.APR_LOCAL, descriptor);
+
+        this.remoteAddress = remoteAddress;
+        this.localAddress = new InetSocketAddress(Address.getip(la), Address.getInfo(la).port);
+    }
+
     long getDescriptor() {
         return descriptor;
     }