summaryrefslogtreecommitdiff
path: root/java/test
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2017-01-30 13:45:21 -0800
committerMark Spruiell <mes@zeroc.com>2017-01-30 13:45:21 -0800
commit61270a10f980933cf582edb766f10c8ac6d86e8a (patch)
tree45ab4a7c2986954054fce613bc3c8f7967e7951e /java/test
parentFix slice2cpp build failure (diff)
downloadice-61270a10f980933cf582edb766f10c8ac6d86e8a.tar.bz2
ice-61270a10f980933cf582edb766f10c8ac6d86e8a.tar.xz
ice-61270a10f980933cf582edb766f10c8ac6d86e8a.zip
merging IceBridge into master
Diffstat (limited to 'java/test')
-rw-r--r--java/test/src/main/java/test/Ice/acm/AllTests.java29
-rw-r--r--java/test/src/main/java/test/Ice/acm/Test.ice3
-rw-r--r--java/test/src/main/java/test/Ice/acm/TestI.java37
-rw-r--r--java/test/src/main/java/test/Ice/ami/AMI.java135
-rw-r--r--java/test/src/main/java/test/Ice/ami/Client.java1
-rw-r--r--java/test/src/main/java/test/Ice/ami/Server.java6
-rw-r--r--java/test/src/main/java/test/Ice/ami/Test.ice10
-rw-r--r--java/test/src/main/java/test/Ice/ami/TestI.java18
-rw-r--r--java/test/src/main/java/test/Ice/background/AllTests.java40
-rw-r--r--java/test/src/main/java/test/Ice/binding/AllTests.java31
-rw-r--r--java/test/src/main/java/test/Ice/hold/AllTests.java2
-rw-r--r--java/test/src/main/java/test/Ice/interrupt/AllTests.java4
-rw-r--r--java/test/src/main/java/test/Ice/location/AllTests.java2
-rw-r--r--java/test/src/main/java/test/Ice/metrics/AMDMetricsI.java2
-rw-r--r--java/test/src/main/java/test/Ice/metrics/AllTests.java19
-rw-r--r--java/test/src/main/java/test/Ice/metrics/MetricsI.java2
-rw-r--r--java/test/src/main/java/test/Ice/operations/BatchOneways.java4
-rw-r--r--java/test/src/main/java/test/Ice/operations/BatchOnewaysAMI.java4
-rw-r--r--java/test/src/main/java/test/Ice/retry/RetryI.java2
-rw-r--r--java/test/src/main/java/test/Ice/timeout/AllTests.java5
-rw-r--r--java/test/src/main/java/test/Ice/udp/AllTests.java2
-rw-r--r--java/test/src/main/java/test/IceSSL/configuration/AllTests.java2
22 files changed, 270 insertions, 90 deletions
diff --git a/java/test/src/main/java/test/Ice/acm/AllTests.java b/java/test/src/main/java/test/Ice/acm/AllTests.java
index 8208748c069..97820ba81e6 100644
--- a/java/test/src/main/java/test/Ice/acm/AllTests.java
+++ b/java/test/src/main/java/test/Ice/acm/AllTests.java
@@ -568,6 +568,31 @@ public class AllTests
}
}
+ static class HeartbeatManualTest extends TestCase
+ {
+ public HeartbeatManualTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out)
+ {
+ super(app, "manual heartbeats", com, out);
+ //
+ // Disable heartbeats.
+ //
+ setClientACM(10, -1, 0);
+ setServerACM(10, -1, 0);
+ }
+
+ public void runTestCase(RemoteObjectAdapterPrx adapter, TestIntfPrx proxy)
+ {
+ proxy.startHeartbeatCount();
+ com.zeroc.Ice.Connection con = proxy.ice_getConnection();
+ con.heartbeat();
+ con.heartbeat();
+ con.heartbeat();
+ con.heartbeat();
+ con.heartbeat();
+ proxy.waitForHeartbeatCount(5);
+ }
+ }
+
static class SetACMTest extends TestCase
{
public SetACMTest(Application app, RemoteCommunicatorPrx com, java.io.PrintWriter out)
@@ -600,7 +625,8 @@ public class AllTests
test(acm.heartbeat == ACMHeartbeat.HeartbeatAlways);
// Make sure the client sends few heartbeats to the server
- proxy.waitForHeartbeat(2);
+ proxy.startHeartbeatCount();
+ proxy.waitForHeartbeatCount(2);
}
}
@@ -627,6 +653,7 @@ public class AllTests
tests.add(new HeartbeatOnIdleTest(app, com, out));
tests.add(new HeartbeatAlwaysTest(app, com, out));
+ tests.add(new HeartbeatManualTest(app, com, out));
tests.add(new SetACMTest(app, com, out));
for(TestCase test : tests)
diff --git a/java/test/src/main/java/test/Ice/acm/Test.ice b/java/test/src/main/java/test/Ice/acm/Test.ice
index 117192a2df8..7f71427c741 100644
--- a/java/test/src/main/java/test/Ice/acm/Test.ice
+++ b/java/test/src/main/java/test/Ice/acm/Test.ice
@@ -18,7 +18,8 @@ interface TestIntf
void sleep(int seconds);
void sleepAndHold(int seconds);
void interruptSleep();
- void waitForHeartbeat(int count);
+ void startHeartbeatCount();
+ void waitForHeartbeatCount(int count);
};
interface RemoteObjectAdapter
diff --git a/java/test/src/main/java/test/Ice/acm/TestI.java b/java/test/src/main/java/test/Ice/acm/TestI.java
index 7b9c369e4f3..43e6fb38d0d 100644
--- a/java/test/src/main/java/test/Ice/acm/TestI.java
+++ b/java/test/src/main/java/test/Ice/acm/TestI.java
@@ -50,35 +50,29 @@ public class TestI implements TestIntf
}
}
- static class Counter
- {
- Counter(int v)
- {
- value = v;
- }
-
- int value;
- }
-
- public void waitForHeartbeat(int count, com.zeroc.Ice.Current current)
+ public void startHeartbeatCount(com.zeroc.Ice.Current current)
{
- final Counter c = new Counter(count);
+ _counter = new Counter();
current.con.setHeartbeatCallback(con ->
{
- synchronized(c)
+ synchronized(_counter)
{
- --c.value;
- c.notifyAll();
+ ++_counter.value;
+ _counter.notifyAll();
}
});
+ }
- synchronized(c)
+ public void waitForHeartbeatCount(int count, com.zeroc.Ice.Current current)
+ {
+ assert(_counter != null);
+ synchronized(_counter)
{
- while(c.value > 0)
+ while(_counter.value < count)
{
try
{
- c.wait();
+ _counter.wait();
}
catch(InterruptedException ex)
{
@@ -86,4 +80,11 @@ public class TestI implements TestIntf
}
}
}
+
+ static class Counter
+ {
+ int value;
+ }
+
+ private Counter _counter;
}
diff --git a/java/test/src/main/java/test/Ice/ami/AMI.java b/java/test/src/main/java/test/Ice/ami/AMI.java
index 85a543317a4..0c6b125897a 100644
--- a/java/test/src/main/java/test/Ice/ami/AMI.java
+++ b/java/test/src/main/java/test/Ice/ami/AMI.java
@@ -17,6 +17,7 @@ import java.util.concurrent.CompletionException;
import com.zeroc.Ice.InvocationFuture;
import com.zeroc.Ice.Util;
+import test.Ice.ami.Test.CloseMode;
import test.Ice.ami.Test.TestIntfPrx;
import test.Ice.ami.Test.TestIntfControllerPrx;
import test.Ice.ami.Test.TestIntfException;
@@ -347,7 +348,7 @@ public class AMI
test(p.opBatchCount() == 0);
TestIntfPrx b1 = p.ice_batchOneway();
b1.opBatch();
- b1.ice_getConnection().close(false);
+ b1.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
CompletableFuture<Void> r = b1.ice_flushBatchRequestsAsync();
Util.getInvocationFuture(r).whenSent((sentSynchronously, ex) ->
{
@@ -395,7 +396,7 @@ public class AMI
TestIntfPrx b1 = TestIntfPrx.uncheckedCast(p.ice_getConnection().createProxy(p.ice_getIdentity())).
ice_batchOneway();
b1.opBatch();
- b1.ice_getConnection().close(false);
+ b1.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
CompletableFuture<Void> r = b1.ice_getConnection().flushBatchRequestsAsync();
Util.getInvocationFuture(r).whenSent((sentSynchronously, ex) ->
{
@@ -444,7 +445,7 @@ public class AMI
TestIntfPrx b1 = TestIntfPrx.uncheckedCast(p.ice_getConnection().createProxy(p.ice_getIdentity())).
ice_batchOneway();
b1.opBatch();
- b1.ice_getConnection().close(false);
+ b1.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
CompletableFuture<Void> r = communicator.flushBatchRequestsAsync();
Util.getInvocationFuture(r).whenSent((sentSynchronously, ex) ->
{
@@ -500,7 +501,7 @@ public class AMI
b2.ice_getConnection(); // Ensure connection is established.
b1.opBatch();
b2.opBatch();
- b1.ice_getConnection().close(false);
+ b1.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
CompletableFuture<Void> r = communicator.flushBatchRequestsAsync();
Util.getInvocationFuture(r).whenSent((sentSynchronously, ex) ->
{
@@ -528,8 +529,8 @@ public class AMI
b2.ice_getConnection(); // Ensure connection is established.
b1.opBatch();
b2.opBatch();
- b1.ice_getConnection().close(false);
- b2.ice_getConnection().close(false);
+ b1.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
+ b2.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
CompletableFuture<Void> r = communicator.flushBatchRequestsAsync();
Util.getInvocationFuture(r).whenSent((sentSynchronously, ex) ->
{
@@ -756,9 +757,35 @@ public class AMI
if(p.ice_getConnection() != null)
{
- out.print("testing close connection with sending queue... ");
+ out.print("testing graceful close connection with wait... ");
out.flush();
{
+ //
+ // Local case: begin several requests, close the connection gracefully, and make sure it waits
+ // for the requests to complete.
+ //
+ java.util.List<CompletableFuture<Void>> results = new java.util.ArrayList<>();
+ for(int i = 0; i < 3; ++i)
+ {
+ results.add(p.sleepAsync(50));
+ }
+ p.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
+ for(CompletableFuture<Void> f : results)
+ {
+ try
+ {
+ f.join();
+ }
+ catch(Throwable ex)
+ {
+ test(false);
+ }
+ }
+ }
+ {
+ //
+ // Remote case.
+ //
byte[] seq = new byte[1024 * 10];
//
@@ -777,7 +804,7 @@ public class AMI
{
results.add(Util.getInvocationFuture(p.opWithPayloadAsync(seq)));
}
- if(!Util.getInvocationFuture(p.closeAsync(false)).isSent())
+ if(!Util.getInvocationFuture(p.closeAsync(CloseMode.CloseGracefullyAndWait)).isSent())
{
for(int i = 0; i < maxQueue; i++)
{
@@ -803,6 +830,98 @@ public class AMI
}
}
out.println("ok");
+
+ out.print("testing graceful close connection without wait... ");
+ out.flush();
+ {
+ //
+ // Local case: start a lengthy operation and then close the connection gracefully on the client side
+ // without waiting for the pending invocation to complete. There will be no retry and we expect the
+ // invocation to fail with ConnectionManuallyClosedException.
+ //
+ // This test requires two threads in the server's thread pool: one will block in sleep() and the other
+ // will process the CloseConnection message.
+ //
+ p.ice_ping();
+ com.zeroc.Ice.Connection con = p.ice_getConnection();
+ CompletableFuture<Void> f = p.sleepAsync(100);
+ con.close(com.zeroc.Ice.ConnectionClose.CloseGracefully);
+ try
+ {
+ f.join();
+ test(false);
+ }
+ catch(CompletionException ex)
+ {
+ test(ex.getCause() instanceof com.zeroc.Ice.ConnectionManuallyClosedException);
+ test(((com.zeroc.Ice.ConnectionManuallyClosedException)ex.getCause()).graceful);
+ }
+ catch(Throwable ex)
+ {
+ test(false);
+ }
+
+ //
+ // Remote case: the server closes the connection gracefully. Our call to TestIntf::close()
+ // completes successfully and then the connection should be closed immediately afterward,
+ // despite the fact that there's a pending call to sleep(). The call to sleep() should be
+ // automatically retried and complete successfully.
+ //
+ p.ice_ping();
+ con = p.ice_getConnection();
+ Callback cb = new Callback();
+ con.setCloseCallback(c -> cb.called());
+ f = p.sleepAsync(100);
+ p.close(CloseMode.CloseGracefully);
+ cb.check();
+ f.join();
+ p.ice_ping();
+ test(p.ice_getConnection() != con);
+ }
+ out.println("ok");
+
+ out.print("testing forceful close connection... ");
+ out.flush();
+ {
+ //
+ // Local case: start a lengthy operation and then close the connection forcefully on the client side.
+ // There will be no retry and we expect the invocation to fail with ConnectionManuallyClosedException.
+ //
+ p.ice_ping();
+ com.zeroc.Ice.Connection con = p.ice_getConnection();
+ CompletableFuture<Void> f = p.sleepAsync(100);
+ con.close(com.zeroc.Ice.ConnectionClose.CloseForcefully);
+ try
+ {
+ f.join();
+ test(false);
+ }
+ catch(CompletionException ex)
+ {
+ test(ex.getCause() instanceof com.zeroc.Ice.ConnectionManuallyClosedException);
+ test(!((com.zeroc.Ice.ConnectionManuallyClosedException)ex.getCause()).graceful);
+ }
+ catch(Throwable ex)
+ {
+ test(false);
+ }
+
+ //
+ // Remote case: the server closes the connection forcefully. This causes the request to fail
+ // with a ConnectionLostException. Since the close() operation is not idempotent, the client
+ // will not retry.
+ //
+ try
+ {
+ p.close(CloseMode.CloseForcefully);
+ test(false);
+ }
+ catch(com.zeroc.Ice.ConnectionLostException ex)
+ {
+ // Expected.
+ }
+ }
+ out.println("ok");
}
}
}
diff --git a/java/test/src/main/java/test/Ice/ami/Client.java b/java/test/src/main/java/test/Ice/ami/Client.java
index f0992f5bece..50fb9fdddee 100644
--- a/java/test/src/main/java/test/Ice/ami/Client.java
+++ b/java/test/src/main/java/test/Ice/ami/Client.java
@@ -24,6 +24,7 @@ public class Client extends test.Util.Application
GetInitDataResult r = super.getInitData(args);
r.initData.properties.setProperty("Ice.Package.Test", "test.Ice.ami");
r.initData.properties.setProperty("Ice.Warn.AMICallback", "0");
+ r.initData.properties.setProperty("Ice.Warn.Connections", "0");
//
// Limit the send buffer size, this test relies on the socket
diff --git a/java/test/src/main/java/test/Ice/ami/Server.java b/java/test/src/main/java/test/Ice/ami/Server.java
index 90a41a5eaf5..c244441f2e5 100644
--- a/java/test/src/main/java/test/Ice/ami/Server.java
+++ b/java/test/src/main/java/test/Ice/ami/Server.java
@@ -33,6 +33,12 @@ public class Server extends test.Util.Application
r.initData.properties.setProperty("TestAdapter.Endpoints", getTestEndpoint(r.initData.properties, 0));
r.initData.properties.setProperty("ControllerAdapter.Endpoints", getTestEndpoint(r.initData.properties, 1));
r.initData.properties.setProperty("ControllerAdapter.ThreadPool.Size", "1");
+
+ //
+ // This test kills connections, so we don't want warnings.
+ //
+ r.initData.properties.setProperty("Ice.Warn.Connections", "0");
+
//
// Limit the recv buffer size, this test relies on the socket
// send() blocking after sending a given amount of data.
diff --git a/java/test/src/main/java/test/Ice/ami/Test.ice b/java/test/src/main/java/test/Ice/ami/Test.ice
index 82b3fe6d383..bbc4d908d65 100644
--- a/java/test/src/main/java/test/Ice/ami/Test.ice
+++ b/java/test/src/main/java/test/Ice/ami/Test.ice
@@ -20,6 +20,13 @@ exception TestIntfException
{
};
+enum CloseMode
+{
+ CloseForcefully,
+ CloseGracefully,
+ CloseGracefullyAndWait
+};
+
interface TestIntf
{
void op();
@@ -30,7 +37,8 @@ interface TestIntf
void opBatch();
int opBatchCount();
bool waitForBatch(int count);
- void close(bool force);
+ void close(CloseMode mode);
+ void sleep(int ms);
void shutdown();
bool supportsFunctionalTests();
diff --git a/java/test/src/main/java/test/Ice/ami/TestI.java b/java/test/src/main/java/test/Ice/ami/TestI.java
index 0153f138dd0..ee7f4eef6f9 100644
--- a/java/test/src/main/java/test/Ice/ami/TestI.java
+++ b/java/test/src/main/java/test/Ice/ami/TestI.java
@@ -9,6 +9,7 @@
package test.Ice.ami;
+import test.Ice.ami.Test.CloseMode;
import test.Ice.ami.Test.TestIntf;
import test.Ice.ami.Test.TestIntfException;
@@ -123,9 +124,22 @@ public class TestI implements TestIntf
@Override
public void
- close(boolean force, com.zeroc.Ice.Current current)
+ close(CloseMode mode, com.zeroc.Ice.Current current)
{
- current.con.close(force);
+ current.con.close(com.zeroc.Ice.ConnectionClose.valueOf(mode.value()));
+ }
+
+ @Override
+ public void
+ sleep(int ms, com.zeroc.Ice.Current current)
+ {
+ try
+ {
+ Thread.sleep(ms);
+ }
+ catch(InterruptedException ex)
+ {
+ }
}
@Override
diff --git a/java/test/src/main/java/test/Ice/background/AllTests.java b/java/test/src/main/java/test/Ice/background/AllTests.java
index ca465338b01..b174df088ed 100644
--- a/java/test/src/main/java/test/Ice/background/AllTests.java
+++ b/java/test/src/main/java/test/Ice/background/AllTests.java
@@ -295,7 +295,7 @@ public class AllTests
configuration.buffered(true);
backgroundController.buffered(true);
background.opAsync();
- background.ice_getCachedConnection().close(true);
+ background.ice_getCachedConnection().close(com.zeroc.Ice.ConnectionClose.CloseForcefully);
background.opAsync();
java.util.List<CompletableFuture<Void>> results = new java.util.ArrayList<>();
@@ -334,7 +334,7 @@ public class AllTests
{
test(false);
}
- background.ice_getConnection().close(false);
+ background.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
for(int i = 0; i < 4; ++i)
{
@@ -396,7 +396,7 @@ public class AllTests
}
configuration.connectException(new com.zeroc.Ice.SocketException());
- background.ice_getCachedConnection().close(true);
+ background.ice_getCachedConnection().close(com.zeroc.Ice.ConnectionClose.CloseForcefully);
try
{
Thread.sleep(10);
@@ -439,7 +439,7 @@ public class AllTests
ex.printStackTrace();
test(false);
}
- background.ice_getConnection().close(false);
+ background.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
for(int i = 0; i < 4; i++)
{
@@ -498,7 +498,7 @@ public class AllTests
{
test(false);
}
- background.ice_getConnection().close(false);
+ background.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
try
{
@@ -510,7 +510,7 @@ public class AllTests
{
test(false);
}
- background.ice_getConnection().close(false);
+ background.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
try
{
@@ -554,7 +554,7 @@ public class AllTests
{
test(false);
}
- background.ice_getConnection().close(false);
+ background.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
try
{
@@ -589,7 +589,7 @@ public class AllTests
}
configuration.initializeException(new com.zeroc.Ice.SocketException());
- background.ice_getCachedConnection().close(true);
+ background.ice_getCachedConnection().close(com.zeroc.Ice.ConnectionClose.CloseForcefully);
try
{
Thread.sleep(10);
@@ -615,7 +615,7 @@ public class AllTests
}
configuration.initializeSocketStatus(com.zeroc.IceInternal.SocketOperation.Write);
- background.ice_getCachedConnection().close(true);
+ background.ice_getCachedConnection().close(com.zeroc.Ice.ConnectionClose.CloseForcefully);
try
{
@@ -630,7 +630,7 @@ public class AllTests
configuration.initializeSocketStatus(com.zeroc.IceInternal.SocketOperation.None);
ctl.initializeException(true);
- background.ice_getCachedConnection().close(true);
+ background.ice_getCachedConnection().close(com.zeroc.Ice.ConnectionClose.CloseForcefully);
try
{
Thread.sleep(10);
@@ -658,7 +658,7 @@ public class AllTests
try
{
ctl.initializeSocketStatus(com.zeroc.IceInternal.SocketOperation.Write);
- background.ice_getCachedConnection().close(true);
+ background.ice_getCachedConnection().close(com.zeroc.Ice.ConnectionClose.CloseForcefully);
background.op();
ctl.initializeSocketStatus(com.zeroc.IceInternal.SocketOperation.None);
}
@@ -693,7 +693,7 @@ public class AllTests
{
test(false);
}
- background.ice_getConnection().close(false);
+ background.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
try
{
@@ -741,7 +741,7 @@ public class AllTests
ex.printStackTrace();
test(false);
}
- background.ice_getConnection().close(false);
+ background.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
try
{
@@ -815,7 +815,7 @@ public class AllTests
ex.printStackTrace();
test(false);
}
- background.ice_getConnection().close(false);
+ background.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
try
{
@@ -845,7 +845,7 @@ public class AllTests
backgroundBatchOneway.op();
ctl.resumeAdapter();
backgroundBatchOneway.ice_flushBatchRequests();
- backgroundBatchOneway.ice_getConnection().close(false);
+ backgroundBatchOneway.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
//
// Send bigger requests to test with auto-flushing.
@@ -857,7 +857,7 @@ public class AllTests
backgroundBatchOneway.opWithPayload(seq);
ctl.resumeAdapter();
backgroundBatchOneway.ice_flushBatchRequests();
- backgroundBatchOneway.ice_getConnection().close(false);
+ backgroundBatchOneway.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
//
// Then try the same thing with async flush.
@@ -869,7 +869,7 @@ public class AllTests
backgroundBatchOneway.op();
ctl.resumeAdapter();
backgroundBatchOneway.ice_flushBatchRequestsAsync();
- backgroundBatchOneway.ice_getConnection().close(false);
+ backgroundBatchOneway.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
ctl.holdAdapter();
backgroundBatchOneway.opWithPayload(seq);
@@ -879,7 +879,7 @@ public class AllTests
ctl.resumeAdapter();
r = backgroundBatchOneway.ice_flushBatchRequestsAsync();
r.join();
- backgroundBatchOneway.ice_getConnection().close(false);
+ backgroundBatchOneway.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
private static void readWriteTests(Configuration configuration, BackgroundPrx background,
@@ -1274,7 +1274,7 @@ public class AllTests
}
background.ice_ping();
- background.ice_getCachedConnection().close(true);
+ background.ice_getCachedConnection().close(com.zeroc.Ice.ConnectionClose.CloseForcefully);
try
{
Thread.sleep(10);
@@ -1283,7 +1283,7 @@ public class AllTests
{
}
- background.ice_getCachedConnection().close(true);
+ background.ice_getCachedConnection().close(com.zeroc.Ice.ConnectionClose.CloseForcefully);
}
thread1._destroy();
diff --git a/java/test/src/main/java/test/Ice/binding/AllTests.java b/java/test/src/main/java/test/Ice/binding/AllTests.java
index e464b71d8af..068307d7c96 100644
--- a/java/test/src/main/java/test/Ice/binding/AllTests.java
+++ b/java/test/src/main/java/test/Ice/binding/AllTests.java
@@ -16,6 +16,7 @@ import test.Ice.binding.Test.RemoteObjectAdapterPrx;
import test.Ice.binding.Test.TestIntfPrx;
import test.Util.Application;
+import com.zeroc.Ice.ConnectionClose;
import com.zeroc.Ice.Endpoint;
import com.zeroc.Ice.EndpointSelectionType;
@@ -132,7 +133,7 @@ public class AllTests
test(test2.ice_getConnection() == test3.ice_getConnection());
names.remove(test1.getAdapterName());
- test1.ice_getConnection().close(false);
+ test1.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
//
@@ -154,7 +155,7 @@ public class AllTests
for(RemoteObjectAdapterPrx p : adapters)
{
- p.getTestIntf().ice_getConnection().close(false);
+ p.getTestIntf().ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
}
@@ -179,7 +180,7 @@ public class AllTests
test(test2.ice_getConnection() == test3.ice_getConnection());
names.remove(test1.getAdapterName());
- test1.ice_getConnection().close(false);
+ test1.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
//
@@ -287,7 +288,7 @@ public class AllTests
{
try
{
- a.getTestIntf().ice_getConnection().close(false);
+ a.getTestIntf().ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
catch(com.zeroc.Ice.LocalException ex)
{
@@ -328,7 +329,7 @@ public class AllTests
test(test2.ice_getConnection() == test3.ice_getConnection());
names.remove(getAdapterNameWithAMI(test1));
- test1.ice_getConnection().close(false);
+ test1.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
//
@@ -350,7 +351,7 @@ public class AllTests
for(RemoteObjectAdapterPrx p : adapters)
{
- p.getTestIntf().ice_getConnection().close(false);
+ p.getTestIntf().ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
}
@@ -375,7 +376,7 @@ public class AllTests
test(test2.ice_getConnection() == test3.ice_getConnection());
names.remove(getAdapterNameWithAMI(test1));
- test1.ice_getConnection().close(false);
+ test1.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
//
@@ -408,7 +409,7 @@ public class AllTests
while(!names.isEmpty())
{
names.remove(test.getAdapterName());
- test.ice_getConnection().close(false);
+ test.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
test = test.ice_endpointSelection(EndpointSelectionType.Random);
@@ -420,7 +421,7 @@ public class AllTests
while(!names.isEmpty())
{
names.remove(test.getAdapterName());
- test.ice_getConnection().close(false);
+ test.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
deactivate(rcom, adapters);
@@ -484,11 +485,11 @@ public class AllTests
adapters.add(rcom.createObjectAdapter("Adapter36", endpoints[2].toString()));
for(i = 0; i < nRetry && test.getAdapterName().equals("Adapter36"); i++);
test(i == nRetry);
- test.ice_getConnection().close(false);
+ test.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
adapters.add(rcom.createObjectAdapter("Adapter35", endpoints[1].toString()));
for(i = 0; i < nRetry && test.getAdapterName().equals("Adapter35"); i++);
test(i == nRetry);
- test.ice_getConnection().close(false);
+ test.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
adapters.add(rcom.createObjectAdapter("Adapter34", endpoints[0].toString()));
for(i = 0; i < nRetry && test.getAdapterName().equals("Adapter34"); i++);
test(i == nRetry);
@@ -785,7 +786,7 @@ public class AllTests
for(i = 0; i < 5; i++)
{
test(test.getAdapterName().equals("Adapter82"));
- test.ice_getConnection().close(false);
+ test.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
TestIntfPrx testSecure = test.ice_secure(true);
@@ -801,7 +802,7 @@ public class AllTests
for(i = 0; i < 5; i++)
{
test(test.getAdapterName().equals("Adapter81"));
- test.ice_getConnection().close(false);
+ test.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
rcom.createObjectAdapter("Adapter83", (test.ice_getEndpoints()[1]).toString()); // Reactive tcp OA.
@@ -809,7 +810,7 @@ public class AllTests
for(i = 0; i < 5; i++)
{
test(test.getAdapterName().equals("Adapter83"));
- test.ice_getConnection().close(false);
+ test.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
rcom.deactivateObjectAdapter(adapters.get(0));
@@ -1004,7 +1005,7 @@ public class AllTests
// Close the connection now to free a FD (it could be done after the sleep but
// there could be race condiutation since the connection might not be closed
// immediately due to threading).
- test.ice_connectionId("0").ice_getConnection().close(false);
+ test.ice_connectionId("0").ice_getConnection().close(ConnectionClose.CloseGracefullyAndWait);
//
// The server closed the acceptor, wait one second and retry after freeing a FD.
diff --git a/java/test/src/main/java/test/Ice/hold/AllTests.java b/java/test/src/main/java/test/Ice/hold/AllTests.java
index 31db0c827da..36974038091 100644
--- a/java/test/src/main/java/test/Ice/hold/AllTests.java
+++ b/java/test/src/main/java/test/Ice/hold/AllTests.java
@@ -205,7 +205,7 @@ public class AllTests
{
f.waitForSent();
holdSerialized.ice_ping(); // Ensure everything's dispatched
- holdSerialized.ice_getConnection().close(false);
+ holdSerialized.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
}
r.join();
diff --git a/java/test/src/main/java/test/Ice/interrupt/AllTests.java b/java/test/src/main/java/test/Ice/interrupt/AllTests.java
index 233a595197d..62a1d6034e1 100644
--- a/java/test/src/main/java/test/Ice/interrupt/AllTests.java
+++ b/java/test/src/main/java/test/Ice/interrupt/AllTests.java
@@ -336,7 +336,7 @@ public class AllTests
{
final Thread mainThread = Thread.currentThread();
- p.ice_getConnection().close(false);
+ p.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
CompletableFuture<com.zeroc.Ice.Connection> r = p.ice_getConnectionAsync();
mainThread.interrupt();
@@ -358,7 +358,7 @@ public class AllTests
// Expected
}
- p.ice_getConnection().close(false);
+ p.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
final Callback cb = new Callback();
mainThread.interrupt();
diff --git a/java/test/src/main/java/test/Ice/location/AllTests.java b/java/test/src/main/java/test/Ice/location/AllTests.java
index 60bcd506d8f..2b6fb9aa789 100644
--- a/java/test/src/main/java/test/Ice/location/AllTests.java
+++ b/java/test/src/main/java/test/Ice/location/AllTests.java
@@ -592,7 +592,7 @@ public class AllTests
out.flush();
hello = HelloPrx.checkedCast(communicator.stringToProxy("hello"));
obj.migrateHello();
- hello.ice_getConnection().close(false);
+ hello.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
hello.sayHello();
obj.migrateHello();
hello.sayHello();
diff --git a/java/test/src/main/java/test/Ice/metrics/AMDMetricsI.java b/java/test/src/main/java/test/Ice/metrics/AMDMetricsI.java
index 916af54b6ae..c329b58a85b 100644
--- a/java/test/src/main/java/test/Ice/metrics/AMDMetricsI.java
+++ b/java/test/src/main/java/test/Ice/metrics/AMDMetricsI.java
@@ -29,7 +29,7 @@ public final class AMDMetricsI implements Metrics
@Override
public CompletionStage<Void> failAsync(com.zeroc.Ice.Current current)
{
- current.con.close(true);
+ current.con.close(com.zeroc.Ice.ConnectionClose.CloseForcefully);
return CompletableFuture.completedFuture((Void)null);
}
diff --git a/java/test/src/main/java/test/Ice/metrics/AllTests.java b/java/test/src/main/java/test/Ice/metrics/AllTests.java
index 051af2be8a2..5f7ada1e51f 100644
--- a/java/test/src/main/java/test/Ice/metrics/AllTests.java
+++ b/java/test/src/main/java/test/Ice/metrics/AllTests.java
@@ -260,7 +260,7 @@ public class AllTests
{
if(proxy.ice_getCachedConnection() != null)
{
- proxy.ice_getCachedConnection().close(false);
+ proxy.ice_getCachedConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
try
@@ -273,7 +273,7 @@ public class AllTests
if(proxy.ice_getCachedConnection() != null)
{
- proxy.ice_getCachedConnection().close(false);
+ proxy.ice_getCachedConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
}
@@ -478,8 +478,9 @@ public class AllTests
if(!collocated)
{
- metrics.ice_getConnection().close(false);
- metrics.ice_connectionId("Con1").ice_getConnection().close(false);
+ metrics.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
+ metrics.ice_connectionId("Con1").ice_getConnection().close(
+ com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
waitForCurrent(clientMetrics, "View", "Connection", 0);
waitForCurrent(serverMetrics, "View", "Connection", 0);
@@ -582,7 +583,7 @@ public class AllTests
map = toMap(serverMetrics.getMetricsView("View").returnValue.get("Connection"));
test(map.get("holding").current == 1);
- metrics.ice_getConnection().close(false);
+ metrics.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
map = toMap(clientMetrics.getMetricsView("View").returnValue.get("Connection"));
test(map.get("closing").current == 1);
@@ -597,7 +598,7 @@ public class AllTests
props.put("IceMX.Metrics.View.Map.Connection.GroupBy", "none");
updateProps(clientProps, serverProps, props, "Connection");
- metrics.ice_getConnection().close(false);
+ metrics.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
metrics.ice_timeout(500).ice_ping();
controller.hold();
@@ -659,7 +660,7 @@ public class AllTests
testAttribute(clientMetrics, clientProps, "Connection", "mcastHost", "", out);
testAttribute(clientMetrics, clientProps, "Connection", "mcastPort", "", out);
- m.ice_getConnection().close(false);
+ m.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
waitForCurrent(clientMetrics, "View", "Connection", 0);
waitForCurrent(serverMetrics, "View", "Connection", 0);
@@ -680,7 +681,7 @@ public class AllTests
clientMetrics.getMetricsView("View").returnValue.get("ConnectionEstablishment")[0];
test(m1.current == 0 && m1.total == 1 && m1.id.equals(hostAndPort));
- metrics.ice_getConnection().close(false);
+ metrics.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
controller.hold();
try
{
@@ -737,7 +738,7 @@ public class AllTests
try
{
prx.ice_ping();
- prx.ice_getConnection().close(false);
+ prx.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
}
catch(com.zeroc.Ice.LocalException ex)
{
diff --git a/java/test/src/main/java/test/Ice/metrics/MetricsI.java b/java/test/src/main/java/test/Ice/metrics/MetricsI.java
index 8a8342431b1..7c9e1a527e5 100644
--- a/java/test/src/main/java/test/Ice/metrics/MetricsI.java
+++ b/java/test/src/main/java/test/Ice/metrics/MetricsI.java
@@ -25,7 +25,7 @@ public final class MetricsI implements Metrics
@Override
public void fail(com.zeroc.Ice.Current current)
{
- current.con.close(true);
+ current.con.close(com.zeroc.Ice.ConnectionClose.CloseForcefully);
}
@Override
diff --git a/java/test/src/main/java/test/Ice/operations/BatchOneways.java b/java/test/src/main/java/test/Ice/operations/BatchOneways.java
index d47af8c6bc2..30a5672e80d 100644
--- a/java/test/src/main/java/test/Ice/operations/BatchOneways.java
+++ b/java/test/src/main/java/test/Ice/operations/BatchOneways.java
@@ -109,7 +109,7 @@ class BatchOneways
batch1.ice_ping();
batch2.ice_ping();
batch1.ice_flushBatchRequests();
- batch1.ice_getConnection().close(false);
+ batch1.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
batch1.ice_ping();
batch2.ice_ping();
@@ -117,7 +117,7 @@ class BatchOneways
batch2.ice_getConnection();
batch1.ice_ping();
- batch1.ice_getConnection().close(false);
+ batch1.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
batch1.ice_ping();
batch2.ice_ping();
}
diff --git a/java/test/src/main/java/test/Ice/operations/BatchOnewaysAMI.java b/java/test/src/main/java/test/Ice/operations/BatchOnewaysAMI.java
index c759e3dc6e9..1093418d3b1 100644
--- a/java/test/src/main/java/test/Ice/operations/BatchOnewaysAMI.java
+++ b/java/test/src/main/java/test/Ice/operations/BatchOnewaysAMI.java
@@ -100,7 +100,7 @@ class BatchOnewaysAMI
batch.ice_pingAsync();
batch2.ice_pingAsync();
batch.ice_flushBatchRequestsAsync().join();
- batch.ice_getConnection().close(false);
+ batch.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
batch.ice_pingAsync();
batch2.ice_pingAsync();
@@ -108,7 +108,7 @@ class BatchOnewaysAMI
batch2.ice_getConnection();
batch.ice_pingAsync();
- batch.ice_getConnection().close(false);
+ batch.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
test(!batch.ice_pingAsync().isCompletedExceptionally());
test(!batch2.ice_pingAsync().isCompletedExceptionally());
}
diff --git a/java/test/src/main/java/test/Ice/retry/RetryI.java b/java/test/src/main/java/test/Ice/retry/RetryI.java
index 827365878ee..23d09ead06e 100644
--- a/java/test/src/main/java/test/Ice/retry/RetryI.java
+++ b/java/test/src/main/java/test/Ice/retry/RetryI.java
@@ -24,7 +24,7 @@ public final class RetryI implements Retry
{
if(current.con != null)
{
- current.con.close(true);
+ current.con.close(com.zeroc.Ice.ConnectionClose.CloseForcefully);
}
else
{
diff --git a/java/test/src/main/java/test/Ice/timeout/AllTests.java b/java/test/src/main/java/test/Ice/timeout/AllTests.java
index 0ba6091a244..1b8172762f9 100644
--- a/java/test/src/main/java/test/Ice/timeout/AllTests.java
+++ b/java/test/src/main/java/test/Ice/timeout/AllTests.java
@@ -262,7 +262,7 @@ public class AllTests
TimeoutPrx to = TimeoutPrx.checkedCast(obj.ice_timeout(100 * mult));
com.zeroc.Ice.Connection connection = to.ice_getConnection();
timeout.holdAdapter(500);
- connection.close(false);
+ connection.close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
try
{
connection.getInfo(); // getInfo() doesn't throw in the closing state.
@@ -283,9 +283,10 @@ public class AllTests
connection.getInfo();
test(false);
}
- catch(com.zeroc.Ice.CloseConnectionException ex)
+ catch(com.zeroc.Ice.ConnectionManuallyClosedException ex)
{
// Expected.
+ test(ex.graceful);
}
timeout.op(); // Ensure adapter is active.
}
diff --git a/java/test/src/main/java/test/Ice/udp/AllTests.java b/java/test/src/main/java/test/Ice/udp/AllTests.java
index 302f9849122..8fddc3c1388 100644
--- a/java/test/src/main/java/test/Ice/udp/AllTests.java
+++ b/java/test/src/main/java/test/Ice/udp/AllTests.java
@@ -124,7 +124,7 @@ public class AllTests
{
test(seq.length > 16384);
}
- obj.ice_getConnection().close(false);
+ obj.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
communicator.getProperties().setProperty("Ice.UDP.SndSize", "64000");
seq = new byte[50000];
try
diff --git a/java/test/src/main/java/test/IceSSL/configuration/AllTests.java b/java/test/src/main/java/test/IceSSL/configuration/AllTests.java
index 6c21b6c5e08..1ece2537cac 100644
--- a/java/test/src/main/java/test/IceSSL/configuration/AllTests.java
+++ b/java/test/src/main/java/test/IceSSL/configuration/AllTests.java
@@ -889,7 +889,7 @@ public class AllTests
//
verifier.reset();
verifier.returnValue(false);
- server.ice_getConnection().close(false);
+ server.ice_getConnection().close(com.zeroc.Ice.ConnectionClose.CloseGracefullyAndWait);
try
{
server.ice_ping();