@Override
  public void propertyChange(PropertyChangeEvent e) {
    Boolean connected = (Boolean) e.getNewValue();

    TL1AssociationEvent event;
    if (connected.booleanValue()) {
      event = new TL1AssociationEvent(TL1AssociationEvent.ASSOCIATION_UP, neInfo);
    } else {
      event = new TL1AssociationEvent(TL1AssociationEvent.ASSOCIATION_DOWN, neInfo);
    }

    if (registerListener != null) {
      registerListener.receiveEvent(event);
    }

    if (heartBeatThread != null) {
      heartBeatThread.terminateHeartBeat();
      ;
    }

    /*
     * If the connection is dropped, the only way to re establish the connection
     * is to open the new socket. But we cannot rely on the IP address and port
     * number that we currently have since, NE Discovery Manager may switch to
     * the different set Anyhow, just terminate the thread and wait for next
     * instruction
     */
    // terminateAssociation();
  }
  public synchronized void terminateAssociation() {
    registerListener = null;
    if (tl1Engine != null) {
      tl1Engine.removePropertyChangeListener(TL1LanguageEngine.CONNECTED, this);
    }

    if (heartBeatThread != null) {
      heartBeatThread.terminateHeartBeat();
    }
  }