summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/entity/agent/ActiveLocator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/entity/agent/ActiveLocator.java')
-rw-r--r--src/main/java/com/c2kernel/entity/agent/ActiveLocator.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/main/java/com/c2kernel/entity/agent/ActiveLocator.java b/src/main/java/com/c2kernel/entity/agent/ActiveLocator.java
index f3d4fb0..966b265 100644
--- a/src/main/java/com/c2kernel/entity/agent/ActiveLocator.java
+++ b/src/main/java/com/c2kernel/entity/agent/ActiveLocator.java
@@ -12,9 +12,13 @@
package com.c2kernel.entity.agent;
+import java.nio.ByteBuffer;
import java.sql.Timestamp;
+import java.util.UUID;
import com.c2kernel.common.ObjectNotFoundException;
+import com.c2kernel.lookup.AgentPath;
+import com.c2kernel.lookup.InvalidAgentPathException;
import com.c2kernel.process.Gateway;
import com.c2kernel.utils.Logger;
@@ -48,7 +52,10 @@ public class ActiveLocator extends org.omg.PortableServer.ServantLocatorPOA
try
{
- int syskey = Integer.parseInt(new String(oid));
+ ByteBuffer bb = ByteBuffer.wrap(oid);
+ long msb = bb.getLong();
+ long lsb = bb.getLong();
+ AgentPath syskey = new AgentPath(new UUID(msb, lsb));
Logger.msg(1,"===========================================================");
Logger.msg(1,"Agent called at "+new Timestamp( System.currentTimeMillis()) +": " + operation +
@@ -61,7 +68,10 @@ public class ActiveLocator extends org.omg.PortableServer.ServantLocatorPOA
{
Logger.error("ObjectNotFoundException::ActiveLocator::preinvoke() "+ex.toString());
throw new org.omg.CORBA.OBJECT_NOT_EXIST();
- }
+ } catch (InvalidAgentPathException ex) {
+ Logger.error("InvalidAgentPathException::ActiveLocator::preinvoke() "+ex.toString());
+ throw new org.omg.CORBA.INV_OBJREF();
+ }
}