Program: 188029
Project: 188029
Buggy source:
public void updateProperties(){
  proppanel.removeAll();
  if (parent != null) {
    int size=parent.getProperties().size();
    Object[] keys=parent.getProperties().keySet().toArray();
    Object[] values=parent.getProperties().values().toArray();
    for (int i=0; i < size; i++) {
      final JLabel jLabel1=new JLabel("String_Node_Str");
      final MyTextField jTextField1=new MyTextField(keys[i].toString());
      JLabel jLabel2=new JLabel("String_Node_Str");
      final JTextField jTextField2=new JTextField();
      proppanel.add(jLabel1);
      jLabel1.setBounds(5,i * 30 + 5,210,14);
      proppanel.add(jTextField1);
      jTextField1.setBounds(50,i * 30 + 5,95,20);
      jTextField1.addKeyListener(new KeyAdapter(){
        public void keyReleased(        KeyEvent ev){
          try {
            if (jTextField1.getText().equals(jTextField1.getOldValue()))             return;
            if (parent.getPropery(jTextField1.getText()) == null) {
              String resp=client.execute("String_Node_Str",new Object[]{parent.getID() + "String_Node_Str" + jTextField1.getOldValue(),jTextField1.getText()}).toString();
              if (resp.equals("String_Node_Str")) {
                parent.addProperty(jTextField1.getText(),parent.getProperties().remove(jTextField1.getOldValue()).toString());
                jTextField1.setOldValue(jTextField1.getText());
              }
 else {
                jTextField1.setText(jTextField1.getOldValue());
              }
            }
 else {
              jTextField1.setText(jTextField1.getOldValue());
              CustomDialog.showInfo(JOptionPane.WARNING_MESSAGE,NodePanel.this,"String_Node_Str","String_Node_Str");
            }
          }
 catch (          Exception e) {
            e.printStackTrace();
          }
        }
      }
);
      proppanel.add(jLabel2);
      jLabel2.setBounds(160,i * 30 + 5,45,14);
      proppanel.add(jTextField2);
      jTextField2.setBounds(205,i * 30 + 2,100,20);
      jTextField2.setText(values[i].toString());
      jTextField2.addKeyListener(new KeyAdapter(){
        public void keyReleased(        KeyEvent ev){
          String key=jTextField1.getText();
          String value=jTextField2.getText();
          parent.addProperty(key,value);
          String path=parent.getParent().getID();
          String name=parent.getName();
          String query="String_Node_Str" + key + "String_Node_Str"+ value+ "String_Node_Str";
          try {
            String resp=client.execute("String_Node_Str",new Object[]{name,path,query}).toString();
          }
 catch (          Exception e) {
            e.printStackTrace();
          }
        }
      }
);
      JButton remove=new JButton("String_Node_Str");
      remove.setBounds(310,i * 30 + 2,90,20);
      remove.addActionListener(new ActionListener(){
        public void actionPerformed(        ActionEvent ev){
          try {
            String s=client.execute("String_Node_Str",new Object[]{parent.getID() + "String_Node_Str" + jTextField1.getText()}).toString();
            if (s.equals("String_Node_Str")) {
              parent.getProperties().remove(jTextField1.getText());
              updateProperties();
            }
          }
 catch (          Exception e) {
            e.printStackTrace();
          }
        }
      }
);
      proppanel.add(jLabel1);
      proppanel.add(jLabel2);
      proppanel.add(jTextField2);
      proppanel.add(remove);
    }
    add.setBounds(310,(size * 30) + 2,90,23);
    proppanel.add(add);
    proppanel.setPreferredSize(new Dimension(280,(size * 30) + 30));
  }
  proppanel.repaint();
}

Fixed version (ground truth):
public void updateProperties(){
  proppanel.removeAll();
  if (parent != null) {
    int size=parent.getProperties().size();
    Object[] keys=parent.getProperties().keySet().toArray();
    Object[] values=parent.getProperties().values().toArray();
    for (int i=0; i < size; i++) {
      final JLabel jLabel1=new JLabel("String_Node_Str");
      final MyTextField jTextField1=new MyTextField(keys[i].toString());
      JLabel jLabel2=new JLabel("String_Node_Str");
      final JTextField jTextField2=new JTextField();
      proppanel.add(jLabel1);
      jLabel1.setBounds(5,i * 30 + 5,210,14);
      proppanel.add(jTextField1);
      jTextField1.setBounds(50,i * 30 + 5,95,20);
      jTextField1.addFocusListener(new FocusAdapter(){
        public void focusLost(        FocusEvent ev){
          if (jTextField1.getText().equals("String_Node_Str")) {
            CustomDialog.showInfo(JOptionPane.WARNING_MESSAGE,NodePanel.this,"String_Node_Str","String_Node_Str");
            jTextField1.setText(jTextField1.getOldValue());
            jTextField1.requestFocusInWindow();
            jTextField1.requestFocus();
          }
        }
      }
);
      jTextField1.addKeyListener(new KeyAdapter(){
        public void keyReleased(        KeyEvent ev){
          try {
            if (jTextField1.getText().equals("String_Node_Str"))             return;
            if (jTextField1.getText().equals(jTextField1.getOldValue()))             return;
            if (parent.getPropery(jTextField1.getText()) == null) {
              String resp=client.execute("String_Node_Str",new Object[]{parent.getID() + "String_Node_Str" + jTextField1.getOldValue(),jTextField1.getText()}).toString();
              if (resp.equals("String_Node_Str")) {
                parent.addProperty(jTextField1.getText(),parent.getProperties().remove(jTextField1.getOldValue()).toString());
                jTextField1.setOldValue(jTextField1.getText());
              }
 else {
                jTextField1.setText(jTextField1.getOldValue());
              }
            }
 else {
              jTextField1.setText(jTextField1.getOldValue());
              CustomDialog.showInfo(JOptionPane.WARNING_MESSAGE,NodePanel.this,"String_Node_Str","String_Node_Str");
            }
          }
 catch (          Exception e) {
            e.printStackTrace();
          }
        }
      }
);
      proppanel.add(jLabel2);
      jLabel2.setBounds(160,i * 30 + 5,45,14);
      proppanel.add(jTextField2);
      jTextField2.setBounds(205,i * 30 + 2,100,20);
      jTextField2.setText(values[i].toString());
      jTextField2.addKeyListener(new KeyAdapter(){
        public void keyReleased(        KeyEvent ev){
          String key=jTextField1.getText();
          String value=jTextField2.getText();
          String path=parent.getParent().getID();
          String name=parent.getName();
          String query="String_Node_Str" + key + "String_Node_Str"+ value+ "String_Node_Str";
          try {
            String resp=client.execute("String_Node_Str",new Object[]{name,path,query}).toString();
            if (resp.equals("String_Node_Str")) {
              parent.addProperty(key,value);
            }
          }
 catch (          Exception e) {
            e.printStackTrace();
          }
        }
      }
);
      JButton remove=new JButton("String_Node_Str");
      remove.setBounds(310,i * 30 + 2,90,20);
      remove.addActionListener(new ActionListener(){
        public void actionPerformed(        ActionEvent ev){
          try {
            if (jTextField1.getText().equals("String_Node_Str"))             return;
            String s=client.execute("String_Node_Str",new Object[]{parent.getID() + "String_Node_Str" + jTextField1.getText()}).toString();
            if (s.equals("String_Node_Str")) {
              parent.getProperties().remove(jTextField1.getText());
              updateProperties();
            }
          }
 catch (          Exception e) {
            e.printStackTrace();
          }
        }
      }
);
      proppanel.add(jLabel1);
      proppanel.add(jLabel2);
      proppanel.add(jTextField2);
      proppanel.add(remove);
    }
    add.setBounds(310,(size * 30) + 2,90,23);
    proppanel.add(add);
    proppanel.setPreferredSize(new Dimension(280,(size * 30) + 30));
  }
  proppanel.repaint();
}