@SuppressWarnings("unchecked")
	synchronized void setStatusChanged(String statusName, int intInfo, Object statusInfo, boolean isReplace) {
		if (!allowStatusReporting || statusList != "all" && statusList.indexOf(statusName) < 0)
			return;
		statusPtr++;
		Vector statusRecordSet;
		Vector msgRecord = new Vector();
		msgRecord.add(new Integer(statusPtr));
		msgRecord.add(statusName);
		msgRecord.add(new Integer(intInfo));
		msgRecord.add(statusInfo);
		if (isReplace && messageQueue.containsKey(statusName)) {
			messageQueue.remove(statusName);
		}
		if (messageQueue.containsKey(statusName)) {
			statusRecordSet = (Vector) messageQueue.remove(statusName);
		}
		else {
			statusRecordSet = new Vector();
		}
		if (statusRecordSet.size() == MAXIMUM_QUEUE_LENGTH)
			statusRecordSet.remove(0);

		statusRecordSet.add(msgRecord);
		messageQueue.put(statusName, statusRecordSet);
	}