private Boolean parseBoolean() throws StreamCorruptedException {
		StringBuffer lenStr = new StringBuffer();
		while (input.remaining() > 0) {
			char ch = input.get();
			if (ch == ';') {
				//indexPlus(1);
				break;
			} else {
				lenStr.append(ch);
			}
		}

		if (lenStr.toString().equals("1")) {
			lenStr = new StringBuffer().append("true");
		} else if (lenStr.toString().equals("0")) {
			lenStr = new StringBuffer().append("false");
		} else {
			throw new StreamCorruptedException("Boolean has invalid value of " + lenStr);
		}

		if (lenStr.length() == 0) {
			throw new StreamCorruptedException("Boolean has no value");
		}

		Boolean value = null;
		try {
			value = Boolean.valueOf(lenStr.toString());
		} catch (Throwable e) {
			throw new StreamCorruptedException("boolean " + lenStr.toString() + " failed to deserialize" );
		}

		objHistory.add(value);

		return value;
	}