public static Object unpack(final byte[] serializedObject) {
        final ByteArrayInputStream bytesArrayInputStream = new ByteArrayInputStream(serializedObject);
        ObjectInput objectInput = null;

        /* Object after restoration */
        Object object = null;

        try {
            objectInput = new ObjectInputStream(bytesArrayInputStream);
            object = objectInput.readObject();

        } catch (final ClassNotFoundException e) {
            LoggingUtility.error("Class not found: " + e.getMessage());
        } catch (final IOException e) {
            LoggingUtility.exception(e);
        } finally {
            /* Closing bytes array input stream */
            try {
                bytesArrayInputStream.close();
            } catch (final IOException e) {
                LoggingUtility.error("Error during closing bytes input stream: " + e.getMessage());
            }

            /* Closing object input stream */
            try {
                if (objectInput != null)
                    objectInput.close();
            } catch (final IOException e) {
                LoggingUtility.error("Error during closing object input stream: " + e.getMessage());
            }
        }

        return object;
    } /* End of 'SerializationUtility::pack' method */