public synchronized void jvnUnLock() throws JvnException {
		if (!this.jvnIsCached()) {
			JvnServerImpl js=JvnServerImpl.jvnGetServer();
			js.jvnRecharge(this.joi);
		}
		System.out.println("unlock STATE : " + STATE + " waitforread : "
				+ wait_for_read + " waitforwrite : " + wait_for_write + "     "
				+ System.currentTimeMillis());
		if (STATE == STATE_ENUM.R) {
			if (wait_for_write) {
				wait_for_write = false;
				STATE = STATE_ENUM.NL;
				this.notify();
			} else {
				STATE = STATE_ENUM.RC;
			}
		} else if (STATE == STATE_ENUM.W || STATE == STATE_ENUM.RWC) {
			if (wait_for_write || wait_for_read) {
				wait_for_write = false;
				wait_for_read = false;
				STATE = STATE_ENUM.NL;
				this.notify();
			} else {
				STATE = STATE_ENUM.WC;
			}
		} else {
			throw new JvnException(
					"Execution de jvnUnLock() sur un jnvObject id =" + joi
							+ " avec l'état " + STATE);
		}
		System.out.println("unlock STATE : " + STATE + " waitforread : "
				+ wait_for_read + " waitforwrite : " + wait_for_write
				+ " finishhhhhhhh" + "     " + System.currentTimeMillis());
		JvnServerImpl js = JvnServerImpl.jvnGetServer();
		js.jvnRefresh(this);
	}