public static boolean session_decode(Env env, String value)
public static boolean session_decode(Env env, StringValue value)
  public static boolean session_decode(Env env, String value)  {    try {      Value session = env.getGlobalValue("_SESSION");      if (! session.isArray()) {	env.warning(L.l("session_decode requires valid session"));	return false;      }      UnserializeReader is = new UnserializeReader(value);      StringBuilder sb = new StringBuilder();      while (true) {	int ch;	sb.setLength(0);	while ((ch = is.read()) > 0 && ch != '|') {	  sb.append((char) ch);	}	if (sb.length() == 0)	  return true;	String key = sb.toString();	session.put(new StringValueImpl(key), is.unserialize(env));      }    } catch (IOException e) {      throw new QuercusModuleException(e);    }  }