code: public Object fromStream(byte[] iStream) throws IOException {
  		if (iStream == null || iStream.length == 0)
  			// NULL VALUE
  			return null;
  
  		final String stream = OBinaryProtocol.bytes2string(iStream);
  
  		Class<?> cls = null;
  
  		try {
  			final StringBuilder content = new StringBuilder();
  			cls = OStreamSerializerHelper.readRecordType(stream, content);
  
  			// TRY WITH THE DATABASE CONSTRUCTOR
  			for (Constructor<?> c : cls.getDeclaredConstructors()) {
  				Class<?>[] params = c.getParameterTypes();
  
  				if (params.length == 2 && params[1].equals(ORID.class)) {
  					ORecord<?> rec = (ORecord<?>) c.newInstance(new ORecordId(content.toString()));
  					// rec.load();
  					return rec;
  				}
  			}
  		} catch (Exception e) {
  			OLogManager.instance().exception("Error on unmarshalling content. Class %s", e, OSerializationException.class,
  					cls != null ? cls.getName() : "?");
  		}
  
  		OLogManager
  				.instance()
  				.exception(
  						"Cannot unmarshall the record since the serialized object of class %s has no constructor with suitable parameters: %s(ORID)",
  						null, OSerializationException.class, cls != null ? cls.getSimpleName() : "?", cls != null ? cls.getSimpleName() : "?");
  
  		return null;
  	}
docs: Re-Create any object if the class has a public constructor that accepts a String as unique parameter.