Program: 86760
Project: 86760
Buggy source:
private void createUI(){
  this.panelView=new PanelView<>();
  this.optionsPanel=new Panel();
  Vector2f uiPos=new Vector2f(200,app.getScreenHeight() - 30);
  final int startY=(int)uiPos.y;
  Button saveBtn=setupButton(uiPos,"String_Node_Str");
  saveBtn.getBounds().setSize(140,80);
  saveBtn.getTextLabel().setFont(theme.getPrimaryFontName());
  saveBtn.addOnButtonClickedListener(new OnButtonClickedListener(){
    @Override public void onButtonClicked(    ButtonEvent event){
      if (isServerInternetOptionsDisplayed) {
        queryInternetServers();
      }
 else {
        queryLANServer();
      }
    }
  }
);
  final int yInc=30;
  uiPos.x=200;
  uiPos.y=200;
  final Button serversBtn=setupButton(uiPos,isServerInternetOptionsDisplayed ? "String_Node_Str" : "String_Node_Str");
  serversBtn.getBounds().setSize(140,20);
  serversBtn.getTextLabel().setFont(theme.getSecondaryFontName());
  serversBtn.addOnButtonClickedListener(new OnButtonClickedListener(){
    @Override public void onButtonClicked(    ButtonEvent event){
      isServerInternetOptionsDisplayed=!isServerInternetOptionsDisplayed;
      if (isServerInternetOptionsDisplayed) {
        serversBtn.setText("String_Node_Str");
      }
 else {
        serversBtn.setText("String_Node_Str");
      }
      refreshConfigUI();
    }
  }
);
  uiPos.y+=yInc;
  final Button gameTypeBtn=setupButton(uiPos,gameTypeIndex == GameType.Type.values().length ? "String_Node_Str" : "String_Node_Str" + GameType.Type.values()[gameTypeIndex]);
  gameTypeBtn.getBounds().setSize(140,20);
  gameTypeBtn.getTextLabel().setFont(theme.getSecondaryFontName());
  gameTypeBtn.addOnButtonClickedListener(new OnButtonClickedListener(){
    @Override public void onButtonClicked(    ButtonEvent event){
      gameTypeIndex++;
      if (gameTypeIndex == GameType.Type.values().length) {
        gameTypeBtn.setText("String_Node_Str");
      }
 else {
        if (gameTypeIndex > GameType.Type.values().length) {
          gameTypeIndex=0;
        }
        gameTypeBtn.setText("String_Node_Str" + GameType.Type.values()[gameTypeIndex]);
      }
      refreshConfigUI();
      queryInternetServers();
    }
  }
);
  uiPos.y+=yInc;
  uiPos.x=80;
  serverListings=new ListBox();
  serverListings.setBackgroundColor(0xff383e18);
  serverListings.setBounds(new Rectangle((int)uiPos.x,(int)uiPos.y,app.getScreenWidth() - 220,400));
  uiPos.x=140;
  uiPos.y=40;
  LeoArray entries=servers.poll();
  if (entries != null) {
    for (    LeoObject entry : entries) {
      serverListings.addItem(setupServerEntryButton(uiPos,parseEntry(entry)));
      uiPos.y+=yInc;
    }
  }
  update.set(false);
  optionsPanel.addWidget(serverListings);
  panelView.addElement(new ListBoxView<>(serverListings));
  uiPos.x=app.getScreenWidth() / 2;
  uiPos.y=650;
  this.noServersFoundLbl=new Label("String_Node_Str");
  this.noServersFoundLbl.setBounds(new Rectangle(app.getScreenWidth(),30));
  this.noServersFoundLbl.getBounds().centerAround(uiPos);
  this.noServersFoundLbl.setTextAlignment(TextAlignment.CENTER);
  if (!this.showServersLabel.get()) {
    noServersFoundLbl.hide();
  }
  optionsPanel.addWidget(noServersFoundLbl);
  panelView.addElement(new LabelView(noServersFoundLbl));
  uiPos.x=app.getScreenWidth() - 100;
  uiPos.y=420;
  Button upArrow=setupButton(uiPos,"String_Node_Str",false,false);
  upArrow.addOnButtonClickedListener(new OnButtonClickedListener(){
    @Override public void onButtonClicked(    ButtonEvent event){
      serverListings.previousIndex();
    }
  }
);
  panelView.addElement(new ImageButtonView(upArrow,Art.upArrow));
  uiPos.y+=yInc * 3;
  Button downArrow=setupButton(uiPos,"String_Node_Str",false,false);
  downArrow.addOnButtonClickedListener(new OnButtonClickedListener(){
    @Override public void onButtonClicked(    ButtonEvent event){
      serverListings.nextIndex();
    }
  }
);
  panelView.addElement(new ImageButtonView(downArrow,Art.downArrow));
  uiPos.x=app.getScreenWidth() - 80;
  uiPos.y=startY;
  Button cancelBtn=setupButton(uiPos,"String_Node_Str");
  cancelBtn.getBounds().setSize(140,80);
  cancelBtn.getTextLabel().setFont(theme.getPrimaryFontName());
  cancelBtn.addOnButtonClickedListener(new OnButtonClickedListener(){
    @Override public void onButtonClicked(    ButtonEvent event){
      app.setScreen(menuScreen);
      Sounds.playGlobalSound(Sounds.uiNavigate);
    }
  }
);
}

Fixed version (ground truth):
private void createUI(){
  this.panelView=new PanelView<>();
  this.optionsPanel=new Panel();
  Vector2f uiPos=new Vector2f(200,app.getScreenHeight() - 30);
  final int startY=(int)uiPos.y;
  Button saveBtn=setupButton(uiPos,"String_Node_Str");
  saveBtn.getBounds().setSize(140,80);
  saveBtn.getTextLabel().setFont(theme.getPrimaryFontName());
  saveBtn.addOnButtonClickedListener(new OnButtonClickedListener(){
    @Override public void onButtonClicked(    ButtonEvent event){
      queryMultiplayerServers();
    }
  }
);
  final int yInc=30;
  uiPos.x=200;
  uiPos.y=200;
  final Button serversBtn=setupButton(uiPos,isServerInternetOptionsDisplayed ? "String_Node_Str" : "String_Node_Str");
  serversBtn.getBounds().setSize(140,20);
  serversBtn.getTextLabel().setFont(theme.getSecondaryFontName());
  serversBtn.addOnButtonClickedListener(new OnButtonClickedListener(){
    @Override public void onButtonClicked(    ButtonEvent event){
      isServerInternetOptionsDisplayed=!isServerInternetOptionsDisplayed;
      if (isServerInternetOptionsDisplayed) {
        serversBtn.setText("String_Node_Str");
      }
 else {
        serversBtn.setText("String_Node_Str");
      }
      refreshConfigUI();
      queryMultiplayerServers();
    }
  }
);
  uiPos.y+=yInc;
  final Button gameTypeBtn=setupButton(uiPos,gameTypeIndex == GameType.Type.values().length ? "String_Node_Str" : "String_Node_Str" + GameType.Type.values()[gameTypeIndex]);
  gameTypeBtn.getBounds().setSize(140,20);
  gameTypeBtn.getTextLabel().setFont(theme.getSecondaryFontName());
  gameTypeBtn.addOnButtonClickedListener(new OnButtonClickedListener(){
    @Override public void onButtonClicked(    ButtonEvent event){
      gameTypeIndex++;
      if (gameTypeIndex == GameType.Type.values().length) {
        gameTypeBtn.setText("String_Node_Str");
      }
 else {
        if (gameTypeIndex > GameType.Type.values().length) {
          gameTypeIndex=0;
        }
        gameTypeBtn.setText("String_Node_Str" + GameType.Type.values()[gameTypeIndex]);
      }
      refreshConfigUI();
      queryMultiplayerServers();
    }
  }
);
  uiPos.y+=yInc;
  uiPos.x=80;
  serverListings=new ListBox();
  serverListings.setBackgroundColor(0xff383e18);
  serverListings.setBounds(new Rectangle((int)uiPos.x,(int)uiPos.y,app.getScreenWidth() - 220,400));
  uiPos.x=140;
  uiPos.y=40;
  while (!servers.isEmpty()) {
    ServerInfo info=servers.poll();
    if (info != null) {
      serverListings.addItem(setupServerEntryButton(uiPos,parseEntry(info)));
      uiPos.y+=yInc;
    }
  }
  update.set(false);
  optionsPanel.addWidget(serverListings);
  panelView.addElement(new ListBoxView<>(serverListings));
  uiPos.x=app.getScreenWidth() / 2;
  uiPos.y=650;
  this.noServersFoundLbl=new Label("String_Node_Str");
  this.noServersFoundLbl.setBounds(new Rectangle(app.getScreenWidth(),30));
  this.noServersFoundLbl.getBounds().centerAround(uiPos);
  this.noServersFoundLbl.setTextAlignment(TextAlignment.CENTER);
  if (!this.showServersLabel.get()) {
    noServersFoundLbl.hide();
  }
  optionsPanel.addWidget(noServersFoundLbl);
  panelView.addElement(new LabelView(noServersFoundLbl));
  uiPos.x=app.getScreenWidth() - 100;
  uiPos.y=420;
  Button upArrow=setupButton(uiPos,"String_Node_Str",false,false);
  upArrow.addOnButtonClickedListener(new OnButtonClickedListener(){
    @Override public void onButtonClicked(    ButtonEvent event){
      serverListings.previousIndex();
    }
  }
);
  panelView.addElement(new ImageButtonView(upArrow,Art.upArrow));
  uiPos.y+=yInc * 3;
  Button downArrow=setupButton(uiPos,"String_Node_Str",false,false);
  downArrow.addOnButtonClickedListener(new OnButtonClickedListener(){
    @Override public void onButtonClicked(    ButtonEvent event){
      serverListings.nextIndex();
    }
  }
);
  panelView.addElement(new ImageButtonView(downArrow,Art.downArrow));
  uiPos.x=app.getScreenWidth() - 80;
  uiPos.y=startY;
  Button cancelBtn=setupButton(uiPos,"String_Node_Str");
  cancelBtn.getBounds().setSize(140,80);
  cancelBtn.getTextLabel().setFont(theme.getPrimaryFontName());
  cancelBtn.addOnButtonClickedListener(new OnButtonClickedListener(){
    @Override public void onButtonClicked(    ButtonEvent event){
      app.setScreen(menuScreen);
      Sounds.playGlobalSound(Sounds.uiNavigate);
    }
  }
);
}