diff options
Diffstat (limited to 'java/src/IceInternal/ObjectAdapterFactory.java')
-rw-r--r-- | java/src/IceInternal/ObjectAdapterFactory.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/java/src/IceInternal/ObjectAdapterFactory.java b/java/src/IceInternal/ObjectAdapterFactory.java index 060201bbb68..f9dda51e09f 100644 --- a/java/src/IceInternal/ObjectAdapterFactory.java +++ b/java/src/IceInternal/ObjectAdapterFactory.java @@ -127,8 +127,24 @@ public final class ObjectAdapterFactory throw new Ice.AlreadyRegisteredException("object adapter", name); } - adapter = new Ice.ObjectAdapterI(_instance, _communicator, this, name, endpoints, router); - _adapters.put(name, adapter); + if(name.length() == 0 && (endpoints.length() != 0 || router != null)) + { + Ice.InitializationException ex = new Ice.InitializationException(); + ex.reason = "Cannot configure endpoints or router with nameless object adapter"; + throw ex; + } + + if(name.length() == 0) + { + String uuid = Ice.Util.generateUUID(); + adapter = new Ice.ObjectAdapterI(_instance, _communicator, this, uuid, "", null, true); + _adapters.put(uuid, adapter); + } + else + { + adapter = new Ice.ObjectAdapterI(_instance, _communicator, this, name, endpoints, router, false); + _adapters.put(name, adapter); + } return adapter; } |