code: @SuppressWarnings("unchecked")
      public <T extends Serializable> T deserialize(byte[] rawBytes)
          throws IOException {
          
          // create buffer and underlying input stream
          ByteArrayInputStream buffer = new ByteArrayInputStream(rawBytes);
          ObjectInputStream input = new ObjectInputStream(buffer);
          
          // read the serialized value
          try { return (T) input.readObject(); } 
          catch (ClassNotFoundException e) {
              throw new IOException("error loading deserialized class", e);
          }
          finally { buffer.close(); }
      }
docs: Deserialize a previously serialized array of bytes into its object form.
  This uses the standard Java-based serializers ({@link ObjectInputStream})
  to deserialize the data and instantiate the associatd class.
  
  @param <T> The type of expected data
  
  @param rawBytes The raw serialized bytes to deserialize
  
  @return The deserialized object representing the serialized bytes
  
  @throws IOException if an error occurs deserializing the data
  
  @see #deserializeBase64(String)
  @see #serialize(Serializable)