public Object read(int token, DataInputStream inputStream) throws IOException { String className = tupleSerialization.getClassNameFor(token); if (className == null) className = WritableUtils.readString(inputStream); Deserializer deserializer = deserializers.get(className); if (deserializer == null) { deserializer = tupleSerialization.getNewDeserializer(className); deserializer.open(inputStream); deserializers.put(className, deserializer); } Object foundObject = null; Object object = null; try { object = deserializer.deserialize(foundObject); } catch (IOException exception) { LOG.error( "failed deserializing token: " + token + " with classname: " + className, exception); throw exception; } return object; }