Program: 46212
Project: 46212
Buggy source:
protected void loadServer(String serverURL,Vector3f translation,Quaternion look) throws IOException {
  logger.info("String_Node_Str" + serverURL);
  logout();
  ServerSessionManager lm=LoginManager.getSessionManager(serverURL);
  JMECollisionSystem collisionSystem=(JMECollisionSystem)ClientContextJME.getWorldManager().getCollisionManager().loadCollisionSystem(JMECollisionSystem.class);
  ClientContextJME.addCollisionSystem(lm,"String_Node_Str",collisionSystem);
  login.setInitialPosition(translation,look);
  try {
    curSession=lm.createSession(login);
  }
 catch (  LoginFailureException lfe) {
    IOException ioe=new IOException("String_Node_Str" + serverURL);
    ioe.initCause(lfe);
    throw ioe;
  }
  if (curSession == null) {
    logger.log(Level.WARNING,"String_Node_Str");
    return;
  }
  curSession.addSessionStatusListener(new SessionStatusListener(){
    public void sessionStatusChanged(    WonderlandSession session,    Status status){
      if (status == Status.DISCONNECTED) {
        ClientContextJME.removeAllPhysicsSystems(session.getSessionManager());
        ClientContextJME.removeAllCollisionSystems(session.getSessionManager());
        boolean inLogout;
synchronized (JmeClientMain.this) {
          inLogout=loggingOut;
        }
        if (!inLogout) {
          final ServerSessionManager mgr=curSession.getSessionManager();
          logger.warning("String_Node_Str");
          logout();
          SwingUtilities.invokeLater(new Runnable(){
            public void run(){
              ReconnectFrame rf=new ReconnectFrame(JmeClientMain.this,mgr);
              rf.pack();
              rf.setVisible(true);
            }
          }
);
        }
 else {
synchronized (JmeClientMain.this) {
            loggingOut=false;
          }
        }
      }
    }
  }
);
  LoginManager.setPrimary(lm);
  lm.setPrimarySession(curSession);
  frame.setServerURL(serverURL);
}

Fixed version (ground truth):
protected void loadServer(String serverURL,Vector3f translation,Quaternion look) throws IOException {
  logger.info("String_Node_Str" + serverURL);
  logout();
  ServerSessionManager lm=LoginManager.getSessionManager(serverURL);
  JMECollisionSystem collisionSystem=(JMECollisionSystem)ClientContextJME.getWorldManager().getCollisionManager().loadCollisionSystem(JMECollisionSystem.class);
  ClientContextJME.addCollisionSystem(lm,"String_Node_Str",collisionSystem);
  login.setInitialPosition(translation,look);
  try {
    curSession=lm.createSession(login);
  }
 catch (  LoginFailureException lfe) {
    IOException ioe=new IOException("String_Node_Str" + serverURL);
    ioe.initCause(lfe);
    throw ioe;
  }
  if (curSession == null) {
    logger.log(Level.WARNING,"String_Node_Str");
    return;
  }
  curSession.addSessionStatusListener(new SessionStatusListener(){
    public void sessionStatusChanged(    WonderlandSession session,    Status status){
      if (status == Status.DISCONNECTED) {
        ClientContextJME.removeAllPhysicsSystems(session.getSessionManager());
        ClientContextJME.removeAllCollisionSystems(session.getSessionManager());
        boolean inLogout;
synchronized (JmeClientMain.this) {
          inLogout=loggingOut;
        }
        if (!inLogout) {
          final ServerSessionManager mgr=curSession.getSessionManager();
          logger.warning("String_Node_Str");
          logout();
          SwingUtilities.invokeLater(new Runnable(){
            public void run(){
              ReconnectFrame rf=new ReconnectFrame(JmeClientMain.this,mgr);
              rf.pack();
              rf.setLocationRelativeTo(JmeClientMain.getFrame().getFrame());
              rf.setVisible(true);
            }
          }
);
        }
 else {
synchronized (JmeClientMain.this) {
            loggingOut=false;
          }
        }
      }
    }
  }
);
  LoginManager.setPrimary(lm);
  lm.setPrimarySession(curSession);
  frame.setServerURL(serverURL);
}