You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2007/09/18 02:45:50 UTC
svn commit: r576637 -
/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageSupport.java
Author: jdillon
Date: Mon Sep 17 17:45:50 2007
New Revision: 576637
URL: http://svn.apache.org/viewvc?rev=576637&view=rev
Log:
Custom UUID marshalling
Modified:
geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageSupport.java
Modified: geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageSupport.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageSupport.java?rev=576637&r1=576636&r2=576637&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageSupport.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-remote/gshell-remote-common/src/main/java/org/apache/geronimo/gshell/remote/message/MessageSupport.java Mon Sep 17 17:45:50 2007
@@ -121,14 +121,43 @@
// MarshalAware
//
+ private void writeUuid(final ByteBuffer buff, final UUID uuid) throws Exception {
+ assert buff != null;
+
+ if (uuid == null) {
+ buff.put((byte)0);
+ }
+ else {
+ buff.put((byte)1);
+
+ buff.putLong(uuid.getMostSignificantBits());
+ buff.putLong(uuid.getLeastSignificantBits());
+ }
+ }
+
+ private UUID readUuid(final ByteBuffer buff) throws Exception {
+ assert buff != null;
+
+ byte isnull = buff.get();
+
+ if (isnull == 1) { // not null
+ long msb = buff.getLong();
+ long lsb = buff.getLong();
+ return new UUID(msb, lsb);
+ }
+ else {
+ return null;
+ }
+ }
+
public void readExternal(final ByteBuffer buff) throws Exception {
assert buff != null;
type = buff.getEnum(MessageType.class);
-
- id = (UUID) buff.getObject();
- correlationId = (UUID) buff.getObject();
+ id = readUuid(buff);
+
+ correlationId = readUuid(buff);
timestamp = buff.getLong();
}
@@ -138,9 +167,9 @@
buff.putEnum(type);
- buff.putObject(id);
+ writeUuid(buff, id);
- buff.putObject(correlationId);
+ writeUuid(buff, correlationId);
buff.putLong(timestamp);
}