@Override
 public Object deserializeFromString(final String key, boolean localOnly)
     throws IOException, ClassNotFoundException {
   if (key.length() >= 1 && key.charAt(0) == MARKER) {
     StringSerializedObjectInputStream ssois = new StringSerializedObjectInputStream(key);
     SerializerObjectInputStream sois =
         new SerializerObjectInputStream(ssois, serializer, tccl, localOnly);
     return sois.readObject();
   }
   return key;
 }
 @Override
 public Object deserialize(final byte[] data, boolean compression, boolean local)
     throws IOException, ClassNotFoundException {
   InputStream in = new ByteArrayInputStream(data);
   if (compression) {
     in = new GZIPInputStream(in);
   }
   SerializerObjectInputStream sois = new SerializerObjectInputStream(in, serializer, tccl, local);
   try {
     return sois.readObject();
   } finally {
     sois.close();
   }
 }