summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/IceInternal/Connection.java21
-rw-r--r--java/src/IceInternal/Instance.java15
-rw-r--r--java/src/IceInternal/ObjectAdapterFactory.java21
-rw-r--r--java/src/IceInternal/OutgoingConnectionFactory.java6
4 files changed, 40 insertions, 23 deletions
diff --git a/java/src/IceInternal/Connection.java b/java/src/IceInternal/Connection.java
index 6067cd2ec85..80c6f6bd784 100644
--- a/java/src/IceInternal/Connection.java
+++ b/java/src/IceInternal/Connection.java
@@ -331,6 +331,12 @@ public final class Connection extends EventHandler
setState(StateHolding);
}
+ public synchronized boolean
+ isValidated()
+ {
+ return _state > StateNotValidated;
+ }
+
public synchronized void
incProxyCount()
{
@@ -379,7 +385,8 @@ public final class Connection extends EventHandler
{
throw _exception;
}
- assert(_state > StateNotValidated && _state < StateClosing);
+ assert(_state > StateNotValidated);
+ assert(_state < StateClosing);
int requestId = 0;
@@ -438,7 +445,8 @@ public final class Connection extends EventHandler
{
throw _exception;
}
- assert(_state > StateNotValidated && _state < StateClosing);
+ assert(_state > StateNotValidated);
+ assert(_state < StateClosing);
int requestId = 0;
@@ -517,7 +525,8 @@ public final class Connection extends EventHandler
{
throw _exception;
}
- assert(_state > StateNotValidated && _state < StateClosing);
+ assert(_state > StateNotValidated);
+ assert(_state < StateClosing);
if(_batchStream.isEmpty())
{
@@ -548,7 +557,8 @@ public final class Connection extends EventHandler
{
throw _exception;
}
- assert(_state > StateNotValidated && _state < StateClosing);
+ assert(_state > StateNotValidated);
+ assert(_state < StateClosing);
_batchStream.swap(os); // Get the batch stream back.
++_batchRequestNum; // Increment the number of requests in the batch.
@@ -592,7 +602,8 @@ public final class Connection extends EventHandler
{
throw _exception;
}
- assert(_state > StateNotValidated && _state < StateClosing);
+ assert(_state > StateNotValidated);
+ assert(_state < StateClosing);
if(!_batchStream.isEmpty())
{
diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java
index 99307251ed1..4344399d960 100644
--- a/java/src/IceInternal/Instance.java
+++ b/java/src/IceInternal/Instance.java
@@ -261,18 +261,15 @@ public class Instance
public void
flushBatchRequests()
{
- OutgoingConnectionFactory f;
- Ice.ObjectAdapterI adapters[];
+ OutgoingConnectionFactory connectionFactory;
+ ObjectAdapterFactory adapterFactory;
synchronized(this)
{
- f = _outgoingConnectionFactory;
- adapters = _objectAdapterFactory.adapters();
- }
- f.flushBatchRequests();
- for(int i = 0; i < adapters.length; i++)
- {
- adapters[i].flushBatchRequests();
+ connectionFactory = _outgoingConnectionFactory;
+ adapterFactory = _objectAdapterFactory;
}
+ connectionFactory.flushBatchRequests();
+ adapterFactory.flushBatchRequests();
}
public BufferManager
diff --git a/java/src/IceInternal/ObjectAdapterFactory.java b/java/src/IceInternal/ObjectAdapterFactory.java
index 2f139d16740..edab241f2cc 100644
--- a/java/src/IceInternal/ObjectAdapterFactory.java
+++ b/java/src/IceInternal/ObjectAdapterFactory.java
@@ -149,18 +149,23 @@ public final class ObjectAdapterFactory
return null;
}
- public synchronized Ice.ObjectAdapterI[]
- adapters()
+ public void
+ flushBatchRequests()
{
java.util.LinkedList a = new java.util.LinkedList();
- java.util.Iterator i = _adapters.values().iterator();
- while(i.hasNext())
+ synchronized(this)
+ {
+ java.util.Iterator i = _adapters.values().iterator();
+ while(i.hasNext())
+ {
+ a.add(i.next());
+ }
+ }
+ java.util.Iterator p = a.iterator();
+ while(p.hasNext())
{
- a.add(i.next());
+ ((Ice.ObjectAdapterI)p.next()).flushBatchRequests();
}
- Ice.ObjectAdapterI[] arr = new Ice.ObjectAdapterI[a.size()];
- a.toArray(arr);
- return arr;
}
//
diff --git a/java/src/IceInternal/OutgoingConnectionFactory.java b/java/src/IceInternal/OutgoingConnectionFactory.java
index ef4f4c30d2e..c748b99b96c 100644
--- a/java/src/IceInternal/OutgoingConnectionFactory.java
+++ b/java/src/IceInternal/OutgoingConnectionFactory.java
@@ -415,7 +415,11 @@ public class OutgoingConnectionFactory
java.util.Iterator p = c.iterator();
while(p.hasNext())
{
- ((Connection)p.next()).flushBatchRequest();
+ Connection conn = (Connection)p.next();
+ if(conn.isValidated())
+ {
+ conn.flushBatchRequest();
+ }
}
}