diff options
author | Benoit Foucher <benoit@zeroc.com> | 2017-06-28 10:34:41 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2017-06-28 10:34:41 +0200 |
commit | 239f19599bd70eb1feb7918289d6dedac8d87e12 (patch) | |
tree | 08bf529015713bb9036cf2414704a6d01b7d204e /java | |
parent | ICE-8166 - call fillInStackTrace in Java (diff) | |
download | ice-239f19599bd70eb1feb7918289d6dedac8d87e12.tar.bz2 ice-239f19599bd70eb1feb7918289d6dedac8d87e12.tar.xz ice-239f19599bd70eb1feb7918289d6dedac8d87e12.zip |
More fixes for ICE-8166 - simplified a bit the waitResponse exception checking
Diffstat (limited to 'java')
11 files changed, 56 insertions, 154 deletions
diff --git a/java/src/Ice/src/main/java/com/zeroc/Ice/CommunicatorI.java b/java/src/Ice/src/main/java/com/zeroc/Ice/CommunicatorI.java index 6905aeb1db7..778ff1f49ec 100644 --- a/java/src/Ice/src/main/java/com/zeroc/Ice/CommunicatorI.java +++ b/java/src/Ice/src/main/java/com/zeroc/Ice/CommunicatorI.java @@ -222,7 +222,7 @@ public final class CommunicatorI implements Communicator return _iceI_flushBatchRequestsAsync(compressBatch); } - public com.zeroc.IceInternal.CommunicatorFlushBatch _iceI_flushBatchRequestsAsync(CompressBatch compressBatch) + private com.zeroc.IceInternal.CommunicatorFlushBatch _iceI_flushBatchRequestsAsync(CompressBatch compressBatch) { com.zeroc.IceInternal.OutgoingConnectionFactory connectionFactory = _instance.outgoingConnectionFactory(); com.zeroc.IceInternal.ObjectAdapterFactory adapterFactory = _instance.objectAdapterFactory(); diff --git a/java/src/Ice/src/main/java/com/zeroc/Ice/ConnectionI.java b/java/src/Ice/src/main/java/com/zeroc/Ice/ConnectionI.java index ff97489b500..5c76b89155e 100644 --- a/java/src/Ice/src/main/java/com/zeroc/Ice/ConnectionI.java +++ b/java/src/Ice/src/main/java/com/zeroc/Ice/ConnectionI.java @@ -216,7 +216,7 @@ public final class ConnectionI extends com.zeroc.IceInternal.EventHandler } catch(InterruptedException ex) { - throw new OperationInterruptedException(); + throw new OperationInterruptedException(ex); } } @@ -453,12 +453,17 @@ public final class ConnectionI extends com.zeroc.IceInternal.EventHandler @Override public void flushBatchRequests(CompressBatch compressBatch) { - ObjectPrx.waitForResponseForCompletion(flushBatchRequestsAsync(compressBatch)); + _iceI_flushBatchRequestsAsync(compressBatch).waitForResponse(); } @Override public java.util.concurrent.CompletableFuture<Void> flushBatchRequestsAsync(CompressBatch compressBatch) { + return _iceI_flushBatchRequestsAsync(compressBatch); + } + + private com.zeroc.IceInternal.ConnectionFlushBatch _iceI_flushBatchRequestsAsync(CompressBatch compressBatch) + { com.zeroc.IceInternal.ConnectionFlushBatch f = new com.zeroc.IceInternal.ConnectionFlushBatch(this, _communicator, _instance); f.invoke(compressBatch); @@ -508,7 +513,7 @@ public final class ConnectionI extends com.zeroc.IceInternal.EventHandler @Override public void heartbeat() { - ObjectPrx.waitForResponseForCompletion(heartbeatAsync()); + _iceI_heartbeatAsync().waitForResponse(); } private class HeartbeatAsync extends com.zeroc.IceInternal.OutgoingAsyncBaseI<Void> @@ -588,6 +593,11 @@ public final class ConnectionI extends com.zeroc.IceInternal.EventHandler @Override public java.util.concurrent.CompletableFuture<Void> heartbeatAsync() { + return _iceI_heartbeatAsync(); + } + + private HeartbeatAsync _iceI_heartbeatAsync() + { HeartbeatAsync f = new HeartbeatAsync(_communicator, _instance); f.invoke(); return f; diff --git a/java/src/Ice/src/main/java/com/zeroc/Ice/ObjectAdapterI.java b/java/src/Ice/src/main/java/com/zeroc/Ice/ObjectAdapterI.java index d7ff266e1ba..9a50e92325d 100644 --- a/java/src/Ice/src/main/java/com/zeroc/Ice/ObjectAdapterI.java +++ b/java/src/Ice/src/main/java/com/zeroc/Ice/ObjectAdapterI.java @@ -156,7 +156,7 @@ public final class ObjectAdapterI implements ObjectAdapter } catch(InterruptedException ex) { - throw new OperationInterruptedException(); + throw new OperationInterruptedException(ex); } } } @@ -184,7 +184,7 @@ public final class ObjectAdapterI implements ObjectAdapter } catch(InterruptedException ex) { - throw new OperationInterruptedException(); + throw new OperationInterruptedException(ex); } } if(_state > StateDeactivating) @@ -333,7 +333,7 @@ public final class ObjectAdapterI implements ObjectAdapter } catch(InterruptedException ex) { - throw new OperationInterruptedException(); + throw new OperationInterruptedException(ex); } } if(_state == StateDestroyed) diff --git a/java/src/Ice/src/main/java/com/zeroc/Ice/ObjectPrx.java b/java/src/Ice/src/main/java/com/zeroc/Ice/ObjectPrx.java index f296d684062..d94deb3dd27 100644 --- a/java/src/Ice/src/main/java/com/zeroc/Ice/ObjectPrx.java +++ b/java/src/Ice/src/main/java/com/zeroc/Ice/ObjectPrx.java @@ -936,55 +936,6 @@ public interface ObjectPrx return r; } - static <T> T waitForResponseForCompletion(java.util.concurrent.CompletableFuture<T> f) - { - try - { - return waitForResponseForCompletionUserEx(f); - } - catch(UserException ex) - { - throw new UnknownUserException(ex.ice_id(), ex); - } - } - - static <T> T waitForResponseForCompletionUserEx(java.util.concurrent.CompletableFuture<T> f) - throws UserException - { - if(Thread.interrupted()) - { - throw new OperationInterruptedException(); - } - - try - { - return f.get(); - } - catch(InterruptedException ex) - { - throw new OperationInterruptedException(); - } - catch(java.util.concurrent.ExecutionException ee) - { - try - { - throw ee.getCause(); - } - catch(RuntimeException ex) // Includes LocalException - { - throw (LocalException)ex.fillInStackTrace(); - } - catch(UserException ex) - { - throw (UserException)ex.fillInStackTrace(); - } - catch(Throwable ex) - { - throw new UnknownException(ex); - } - } - } - void _write(OutputStream os); void _copyFrom(ObjectPrx p); com.zeroc.IceInternal.Reference _getReference(); diff --git a/java/src/Ice/src/main/java/com/zeroc/IceInternal/CommunicatorFlushBatch.java b/java/src/Ice/src/main/java/com/zeroc/IceInternal/CommunicatorFlushBatch.java index 17048beace5..d30cdc09ae6 100644 --- a/java/src/Ice/src/main/java/com/zeroc/IceInternal/CommunicatorFlushBatch.java +++ b/java/src/Ice/src/main/java/com/zeroc/IceInternal/CommunicatorFlushBatch.java @@ -178,7 +178,7 @@ public class CommunicatorFlushBatch extends InvocationFutureI<Void> } catch(RuntimeException ex) // Includes LocalException { - throw (RuntimeException)ex.fillInStackTrace(); + throw ex; } catch(Throwable ex) { diff --git a/java/src/Ice/src/main/java/com/zeroc/IceInternal/OutgoingAsync.java b/java/src/Ice/src/main/java/com/zeroc/IceInternal/OutgoingAsync.java index 7a6fa9d1773..c34641d393c 100644 --- a/java/src/Ice/src/main/java/com/zeroc/IceInternal/OutgoingAsync.java +++ b/java/src/Ice/src/main/java/com/zeroc/IceInternal/OutgoingAsync.java @@ -105,6 +105,7 @@ public class OutgoingAsync<T> extends ProxyOutgoingAsyncBaseI<T> } } + @Override public T waitForResponse() { if(isBatch()) @@ -136,7 +137,7 @@ public class OutgoingAsync<T> extends ProxyOutgoingAsyncBaseI<T> } catch(InterruptedException ex) { - throw new OperationInterruptedException(); + throw new OperationInterruptedException(ex); } catch(java.util.concurrent.ExecutionException ee) { @@ -146,11 +147,11 @@ public class OutgoingAsync<T> extends ProxyOutgoingAsyncBaseI<T> } catch(RuntimeException ex) // Includes LocalException { - throw (RuntimeException)ex.fillInStackTrace(); + throw ex; } catch(UserException ex) { - throw (UserException)ex.fillInStackTrace(); + throw ex; } catch(Throwable ex) { diff --git a/java/src/Ice/src/main/java/com/zeroc/IceInternal/OutgoingAsyncBaseI.java b/java/src/Ice/src/main/java/com/zeroc/IceInternal/OutgoingAsyncBaseI.java index 5f11bf9c117..5def67b86e5 100644 --- a/java/src/Ice/src/main/java/com/zeroc/IceInternal/OutgoingAsyncBaseI.java +++ b/java/src/Ice/src/main/java/com/zeroc/IceInternal/OutgoingAsyncBaseI.java @@ -70,6 +70,38 @@ public abstract class OutgoingAsyncBaseI<T> extends InvocationFutureI<T> impleme return _os; } + public T waitForResponse() + { + if(Thread.interrupted()) + { + throw new com.zeroc.Ice.OperationInterruptedException(); + } + + try + { + return get(); + } + catch(InterruptedException ex) + { + throw new com.zeroc.Ice.OperationInterruptedException(ex); + } + catch(java.util.concurrent.ExecutionException ee) + { + try + { + throw ee.getCause().fillInStackTrace(); + } + catch(RuntimeException ex) // Includes LocalException + { + throw ex; + } + catch(Throwable ex) + { + throw new com.zeroc.Ice.UnknownException(ex); + } + } + } + protected OutgoingAsyncBaseI(com.zeroc.Ice.Communicator com, Instance instance, String op) { super(com, instance, op); diff --git a/java/src/Ice/src/main/java/com/zeroc/IceInternal/ProxyFlushBatch.java b/java/src/Ice/src/main/java/com/zeroc/IceInternal/ProxyFlushBatch.java index 780cb795929..1361edaab95 100644 --- a/java/src/Ice/src/main/java/com/zeroc/IceInternal/ProxyFlushBatch.java +++ b/java/src/Ice/src/main/java/com/zeroc/IceInternal/ProxyFlushBatch.java @@ -60,37 +60,5 @@ public class ProxyFlushBatch extends ProxyOutgoingAsyncBaseI<Void> invokeImpl(true); // userThread = true } - public void waitForResponse() - { - if(Thread.interrupted()) - { - throw new com.zeroc.Ice.OperationInterruptedException(); - } - - try - { - get(); - } - catch(InterruptedException ex) - { - throw new com.zeroc.Ice.OperationInterruptedException(); - } - catch(java.util.concurrent.ExecutionException ee) - { - try - { - throw ee.getCause().fillInStackTrace(); - } - catch(RuntimeException ex) // Includes LocalException - { - throw (RuntimeException)ex.fillInStackTrace(); - } - catch(Throwable ex) - { - throw new com.zeroc.Ice.UnknownException(ex); - } - } - } - protected int _batchRequestNum; } diff --git a/java/src/Ice/src/main/java/com/zeroc/IceInternal/ProxyGetConnection.java b/java/src/Ice/src/main/java/com/zeroc/IceInternal/ProxyGetConnection.java index b2458d35cdb..942f030d75a 100644 --- a/java/src/Ice/src/main/java/com/zeroc/IceInternal/ProxyGetConnection.java +++ b/java/src/Ice/src/main/java/com/zeroc/IceInternal/ProxyGetConnection.java @@ -56,36 +56,4 @@ public class ProxyGetConnection extends ProxyOutgoingAsyncBaseI<com.zeroc.Ice.Co { invokeImpl(true); // userThread = true } - - public com.zeroc.Ice.Connection waitForResponse() - { - if(Thread.interrupted()) - { - throw new com.zeroc.Ice.OperationInterruptedException(); - } - - try - { - return get(); - } - catch(InterruptedException ex) - { - throw new com.zeroc.Ice.OperationInterruptedException(); - } - catch(java.util.concurrent.ExecutionException ee) - { - try - { - throw ee.getCause().fillInStackTrace(); - } - catch(RuntimeException ex) // Includes LocalException - { - throw (RuntimeException)ex.fillInStackTrace(); - } - catch(Throwable ex) - { - throw new com.zeroc.Ice.UnknownException(ex); - } - } - } } diff --git a/java/src/Ice/src/main/java/com/zeroc/IceInternal/ProxyIceInvoke.java b/java/src/Ice/src/main/java/com/zeroc/IceInternal/ProxyIceInvoke.java index 17d5d663f60..c9cb0386635 100644 --- a/java/src/Ice/src/main/java/com/zeroc/IceInternal/ProxyIceInvoke.java +++ b/java/src/Ice/src/main/java/com/zeroc/IceInternal/ProxyIceInvoke.java @@ -70,35 +70,7 @@ public class ProxyIceInvoke extends ProxyOutgoingAsyncBaseI<com.zeroc.Ice.Object // return new com.zeroc.Ice.Object.Ice_invokeResult(true, new byte[0]); } - - if(Thread.interrupted()) - { - throw new OperationInterruptedException(); - } - - try - { - return get(); - } - catch(InterruptedException ex) - { - throw new OperationInterruptedException(); - } - catch(java.util.concurrent.ExecutionException ee) - { - try - { - throw ee.getCause().fillInStackTrace(); - } - catch(RuntimeException ex) // Includes LocalException - { - throw (RuntimeException)ex.fillInStackTrace(); - } - catch(Throwable ex) - { - throw new UnknownException(ex); - } - } + return super.waitForResponse(); } @Override diff --git a/java/src/Ice/src/main/java/com/zeroc/IceInternal/QueueExecutorService.java b/java/src/Ice/src/main/java/com/zeroc/IceInternal/QueueExecutorService.java index a825db1ad30..6346614d024 100644 --- a/java/src/Ice/src/main/java/com/zeroc/IceInternal/QueueExecutorService.java +++ b/java/src/Ice/src/main/java/com/zeroc/IceInternal/QueueExecutorService.java @@ -94,7 +94,7 @@ public final class QueueExecutorService } catch(RuntimeException ex) { - throw (RuntimeException)ex.fillInStackTrace(); + throw ex; } catch(Throwable ex) { |