summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/ObjectFactoryManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/ObjectFactoryManager.java')
-rw-r--r--java/src/IceInternal/ObjectFactoryManager.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/java/src/IceInternal/ObjectFactoryManager.java b/java/src/IceInternal/ObjectFactoryManager.java
index 4964cee0817..d7af9549b32 100644
--- a/java/src/IceInternal/ObjectFactoryManager.java
+++ b/java/src/IceInternal/ObjectFactoryManager.java
@@ -24,7 +24,7 @@ public final class ObjectFactoryManager
{
Ice.AlreadyRegisteredException ex = new Ice.AlreadyRegisteredException();
ex.id = id;
- ex.kindOfObject = "user exception factory";
+ ex.kindOfObject = "object factory";
throw ex;
}
_factoryMap.put(id, factory);
@@ -38,9 +38,12 @@ public final class ObjectFactoryManager
{
Ice.NotRegisteredException ex = new Ice.NotRegisteredException();
ex.id = id;
- ex.kindOfObject = "user exception factory";
+ ex.kindOfObject = "object factory";
throw ex;
}
+
+ ((Ice.ObjectFactory)o).destroy();
+
_factoryMap.remove(id);
}
@@ -57,7 +60,7 @@ public final class ObjectFactoryManager
{
}
- void
+ synchronized void
destroy()
{
java.util.Iterator i = _factoryMap.values().iterator();