Author: jvermillard
Date: Fri Jun 6 01:23:38 2008
New Revision: 663852
URL: http://svn.apache.org/viewvc?rev=663852&view=rev
Log:
Applying Geoff Cadien patch for fixing destruction of APR sockets. See
DIRMINA-584
Modified:
mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java
mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSession.java
Modified:
mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java
URL:
http://svn.apache.org/viewvc/mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java?rev=663852&r1=663851&r2=663852&view=diff
==============================================================================
---
mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java
(original)
+++
mina/trunk/transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprIoProcessor.java
Fri Jun 6 01:23:38 2008
@@ -238,6 +238,12 @@
}
} finally {
ret = Socket.close(session.getDescriptor());
+
+ // destroying the session because it won't be reused
+ // after this point
+ Socket.destroy(session.getDescriptor());
+ session.setDescriptor(0);
+
if (ret != Status.APR_SUCCESS) {
throwException(ret);
}
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=663852&r1=663851&r2=663852&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
Fri Jun 6 01:23:38 2008
@@ -38,7 +38,7 @@
* @version $Rev$, $Date$
*/
public abstract class AprSession extends AbstractIoSession {
- private final long descriptor;
+ private long descriptor;
private final IoService service;
private final IoProcessor<AprSession> processor;
@@ -89,6 +89,10 @@
return descriptor;
}
+ void setDescriptor(long desc) {
+ this.descriptor = desc;
+ }
+
@Override
protected IoProcessor<AprSession> getProcessor() {
return processor;