void setState(int _state, Vector<TSEvent> eventList) {
		synchronized (this) {
			if ((this.state == _state) || (this.state == 34)) {
				return;
			}

			this.state = _state;
		}

		switch (this.state) {
		case 33:
			if (eventList != null) {
				eventList.addElement(new TSEvent(4, this));
			}

			boolean tryMonitor = false;
			synchronized (this) {
				if (this.monitorPending) {
					tryMonitor = true;
					this.monitorPending = false;
				}
			}
			if (tryMonitor) {
				try {
					setMonitor(false);
				} catch (TsapiUnableToSendException tue) {
					throw tue;
				} catch (Exception e) {
					log.error(e.getMessage(), e);
					removeObservers(107, null, 0);
				}

			}

			break;
		case 34:
			Vector<TSTrunk> trkVectorClone = (Vector<TSTrunk>) this.trkVector.clone();
			for (int i = 0; i < trkVectorClone.size(); i++) {
				TSTrunk tmpTrunk = (TSTrunk) trkVectorClone.elementAt(i);

				synchronized (tmpTrunk) {
					if (this.trkVector.removeElement(tmpTrunk)) {
						tmpTrunk.setState(1, eventList);
					}
				}
				tmpTrunk = null;
			}
			trkVectorClone.removeAllElements();
			trkVectorClone = null;

			Vector<TSConnection> conn = new Vector<TSConnection>(this.connections);
			for (int i = 0; i < conn.size(); i++) {
				((TSConnection) conn.elementAt(i)).setConnectionState(89,
						eventList);
			}
			if (eventList != null) {
				eventList.addElement(new TSEvent(5, this));
			}

			this.needSnapshot = false;

			synchronized (this.connections) {
				this.connections.notify();
			}

			delete();
			break;
		}
	}