diff --git a/ikasoa-core/pom.xml b/ikasoa-core/pom.xml
index ea013b9..9f0398a 100644
--- a/ikasoa-core/pom.xml
+++ b/ikasoa-core/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.ikasoa
ikasoa-core
- 0.4.5
+ 0.4.6
jar
Ikasoa Core
ikasoa is a java distributed service framework.
@@ -121,7 +121,7 @@
org.apache.thrift
libthrift
- 0.9.2
+ 0.9.3
org.slf4j
diff --git a/ikasoa-core/src/com/ikamobile/ikasoa/core/thrift/client/pool/impl/DefaultSocketChannelPoolImpl.java b/ikasoa-core/src/com/ikamobile/ikasoa/core/thrift/client/pool/impl/DefaultSocketChannelPoolImpl.java
index 23fd248..0498300 100644
--- a/ikasoa-core/src/com/ikamobile/ikasoa/core/thrift/client/pool/impl/DefaultSocketChannelPoolImpl.java
+++ b/ikasoa-core/src/com/ikamobile/ikasoa/core/thrift/client/pool/impl/DefaultSocketChannelPoolImpl.java
@@ -1,5 +1,6 @@
package com.ikamobile.ikasoa.core.thrift.client.pool.impl;
+import java.io.IOException;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
@@ -116,8 +117,16 @@ public synchronized ThriftSocketChannel buildThriftSocketChannel(String host, in
byte i = 0;
for (; i < size; i++) {
if (!self.socketStatusArray[i]) {
+ ThriftSocketChannel thriftSocketChannel = getThriftSocketChannel(self, i, host, port);
+ if (!thriftSocketChannel.isOpen()) {
+ try {
+ thriftSocketChannel = new ThriftSocketChannel(host, port, time);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
self.socketStatusArray[i] = true;
- return getThriftSocketChannel(self, i, host, port);
+ return thriftSocketChannel;
}
}
// 如果连接不够用,就初始化连接池.
diff --git a/ikasoa-core/src/com/ikamobile/ikasoa/core/thrift/client/pool/impl/DefaultSocketPoolImpl.java b/ikasoa-core/src/com/ikamobile/ikasoa/core/thrift/client/pool/impl/DefaultSocketPoolImpl.java
index 7565fbf..a2d3a0c 100644
--- a/ikasoa-core/src/com/ikamobile/ikasoa/core/thrift/client/pool/impl/DefaultSocketPoolImpl.java
+++ b/ikasoa-core/src/com/ikamobile/ikasoa/core/thrift/client/pool/impl/DefaultSocketPoolImpl.java
@@ -116,8 +116,12 @@ public synchronized ThriftSocket buildThriftSocket(String host, int port) {
byte i = 0;
for (; i < size; i++) {
if (!self.socketStatusArray[i]) {
+ ThriftSocket thriftSocket = getThriftSocket(self, i, host, port);
+ if (!thriftSocket.isOpen()) {
+ thriftSocket = new ThriftSocket(host, port, time);
+ }
self.socketStatusArray[i] = true;
- return getThriftSocket(self, i, host, port);
+ return thriftSocket;
}
}
// 如果连接不够用,就初始化连接池.
diff --git a/ikasoa-core/src/com/ikamobile/ikasoa/core/thrift/server/impl/AbstractThriftServerImpl.java b/ikasoa-core/src/com/ikamobile/ikasoa/core/thrift/server/impl/AbstractThriftServerImpl.java
index 0576a0e..b71fa98 100644
--- a/ikasoa-core/src/com/ikamobile/ikasoa/core/thrift/server/impl/AbstractThriftServerImpl.java
+++ b/ikasoa-core/src/com/ikamobile/ikasoa/core/thrift/server/impl/AbstractThriftServerImpl.java
@@ -147,6 +147,9 @@ public void stop() {
Thread.currentThread().interrupt();
}
}
+ server = null;
+ serverSocket = null;
+ executorService = null;
LOG.info("Stop thrift server ...... (name: " + serverName + ")");
afterStop(getThriftServerConfiguration().getServerAspect());
} else {