ObservableMap does not support null values in Maps

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: P3
    • 8
    • Affects Version/s: 7u10
    • Component/s: javafx
    • Environment:

      Ubuntu Linux 12.04 x86, jdk7u10, javafx 2.2.4

      If add element with null value( map.put("test", null) wasAdded() and wasRemoved() in MapChangeListener return false
      On remove this element from map (remove("teset")) listener will not be called.

      Example:


      import javafx.collections.FXCollections;
      import javafx.collections.MapChangeListener;
      import javafx.collections.MapChangeListener.Change;
      import javafx.collections.ObservableMap;


      public class TestObservableMap {
          public static void main(String[] args) {
              ObservableMap<String, Object> test = FXCollections.<String, Object>observableHashMap();
              test.addListener(new MapChangeListener<String, Object>(){

                  public void onChanged(Change<? extends String, ? extends Object> change) {
                      System.err.println("Is added: " + change.wasAdded());
                      System.err.println("Is removed: " + change.wasRemoved());
                  }

              });
              
              test.put("test", null);
              System.err.println(test.size());
              test.remove("test");
              System.err.println(test.size());
          }
      }


      Output of example:
      Is added: false
      Is removed: false
      1
      0

            Assignee:
            Martin Sládeček
            Reporter:
            J. Duke
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported: