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;
}