summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/Ice/src/main/java/IceInternal/RequestHandlerFactory.java33
1 files changed, 15 insertions, 18 deletions
diff --git a/java/src/Ice/src/main/java/IceInternal/RequestHandlerFactory.java b/java/src/Ice/src/main/java/IceInternal/RequestHandlerFactory.java
index aa5d4292b7d..f7f599227fd 100644
--- a/java/src/Ice/src/main/java/IceInternal/RequestHandlerFactory.java
+++ b/java/src/Ice/src/main/java/IceInternal/RequestHandlerFactory.java
@@ -30,34 +30,31 @@ public final class RequestHandlerFactory
return new CollocatedRequestHandler(ref, adapter);
}
}
-
+
+ RequestHandler handler;
if(ref.getCacheConnection())
{
synchronized(this)
{
- RequestHandler handler = _handlers.get(ref);
- if(handler != null)
- {
- return handler;
- }
-
- handler = new ConnectRequestHandler(ref, proxy);
- _handlers.put(ref, handler);
-
- if(_instance.queueRequests())
+ handler = _handlers.get(ref);
+ if(handler == null)
{
- handler = new QueueRequestHandler(_instance, handler);
+ handler = new ConnectRequestHandler(ref, proxy);
+ _handlers.put(ref, handler);
}
- return handler;
}
}
else
{
- RequestHandler handler = new ConnectRequestHandler(ref, proxy);
- if(_instance.queueRequests())
- {
- handler = new QueueRequestHandler(_instance, handler);
- }
+ handler = new ConnectRequestHandler(ref, proxy);
+ }
+
+ if(_instance.queueRequests())
+ {
+ return new QueueRequestHandler(_instance, handler);
+ }
+ else
+ {
return handler;
}
}