obj = qClass.callNew(env, new Value[0]);
obj = qClass.newInstance(env, new Value[0]);
  public Value unserialize(Env env)    throws IOException  {    int ch = read();    switch (ch) {    case 'b':      {        expect(':');        long v = readInt();        expect(';');        return v == 0 ? BooleanValue.FALSE : BooleanValue.TRUE;      }    case 's':      {        expect(':');        int len = (int) readInt();        expect(':');        expect('"');        StringValue s = readStringValue(len);        expect('"');        expect(';');        return s;      }    case 'i':      {        expect(':');        long value = readInt();        expect(';');        return LongValue.create(value);      }    case 'd':      {        expect(':');        StringBuilder sb = new StringBuilder();        for (ch = read(); ch >= 0 && ch != ';'; ch = read()) {          sb.append((char) ch);        }        if (ch != ';')          throw new IOException(L.l("expected ';'"));        return new DoubleValue(Double.parseDouble(sb.toString()));      }    case 'a':      {        expect(':');        long len = readInt();        expect(':');        expect('{');        ArrayValue array = new ArrayValueImpl((int) len);        for (int i = 0; i < len; i++) {          Value key = unserializeKey(env);          Value value = unserialize(env);          array.put(key, value);        }        expect('}');        return array;      }    case 'O':      {        expect(':');        int len = (int) readInt();        expect(':');        expect('"');        String className = readString(len);        expect('"');        expect(':');        long count = readInt();        expect(':');        expect('{');	QuercusClass qClass = env.findClass(className);	Value obj;	if (qClass != null)	  obj = qClass.callNew(env, new Value[0]);	else {	  log.fine(L.l("{0} is an undefined class in unserialize",		       className));	  	  obj = env.createObject();	  obj.putField(env,		       "__Quercus_Incomplete_Class_name",		       new StringValueImpl(className));	}	        for (int i = 0; i < count; i++) {          String key = unserializeString();          Value value = unserialize(env);          obj.putField(env, key, value);        }        expect('}');        return obj;      }    case 'N':      {        expect(';');        return NullValue.NULL;      }    default:      return BooleanValue.FALSE;    }  }