From da731d2bb81666b9c697d9099da632e7dfcdc0f7 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 9 Sep 2014 12:13:21 +0200 Subject: Replaced int sysKey Item identifier with UUID, which is now portable. ItemPath objects are now used to identify Items throughout the kernel, replacing ints and Integers. --- .../java/com/c2kernel/entity/TraceableLocator.java | 27 +++++++++++----------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'src/main/java/com/c2kernel/entity/TraceableLocator.java') diff --git a/src/main/java/com/c2kernel/entity/TraceableLocator.java b/src/main/java/com/c2kernel/entity/TraceableLocator.java index 387779b..e370ed6 100644 --- a/src/main/java/com/c2kernel/entity/TraceableLocator.java +++ b/src/main/java/com/c2kernel/entity/TraceableLocator.java @@ -12,9 +12,12 @@ package com.c2kernel.entity; +import java.nio.ByteBuffer; import java.sql.Timestamp; +import java.util.UUID; import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.lookup.ItemPath; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Logger; @@ -45,23 +48,21 @@ public class TraceableLocator extends org.omg.PortableServer.ServantLocatorPOA String operation, org.omg.PortableServer.ServantLocatorPackage.CookieHolder cookie ) { - try - { + ByteBuffer bb = ByteBuffer.wrap(oid); + long msb = bb.getLong(); + long lsb = bb.getLong(); + ItemPath syskey = new ItemPath(new UUID(msb, lsb)); - int syskey = Integer.parseInt(new String(oid)); + Logger.msg(1,"==========================================================="); + Logger.msg(1,"Item called at "+new Timestamp( System.currentTimeMillis()) +": " + operation + + "(" + syskey + ")." ); - Logger.msg(1,"==========================================================="); - Logger.msg(1,"Item called at "+new Timestamp( System.currentTimeMillis()) +": " + operation + - "(" + syskey + ")." ); - - return Gateway.getCorbaServer().getItem(syskey); - - } - catch (ObjectNotFoundException ex) - { + try { + return Gateway.getCorbaServer().getItem(syskey); + } catch (ObjectNotFoundException ex) { Logger.error("ObjectNotFoundException::TraceableLocator::preinvoke() " + ex.toString()); throw new org.omg.CORBA.OBJECT_NOT_EXIST(); - } + } } -- cgit v1.2.3