Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8118198

Ensemble: sample.play() is called twice which lead to OOM errors

    Details

      Description

      Ensemble2Auto reliability test failed with OOM after less than 3 hours.
      Heap dump file shows that heap is mostly occupied by BorderPane (62Mb) and
      GridPane (51Mb). The path to GC root shows that these objects are referenced
      from ensemble.samples.animation.timelines.TimelineEventSample$1 which are
      not removed from javafx.animation.AnimationTimer[] for some reason.

      Instrumenting AbstractMasterTimer and AnimationTimer classes shows that every
      time we click on TimelineEvents sample ensemble.samples.animation.timelines.TimelineEventSample$1
      is added twice while when we switch to another tab it is removed only once.
      The reason is because sample.play() is called twice from ensemble.pages.SamplePage:
       149 sample.play();
       213 sample.play();

      while sample.stop() is called only once:
       215 sample.stop();


      javafx.animation.AnimationTimer[] doesn't check for uniqueness, so the number of times
      we call play() and stop() methods should be equal. This needs to be fixed in Ensemble2.

      I will try to patch my local version of Ensemble and remove first call of play()
      and run Ensemble2Auto to see how much it helps.
      I am not sure this is correct fix, so it should be up to Ensemble developers to fix it properly.



        Attachments

          Activity

            People

            • Assignee:
              dmasada Debra Masada (Inactive)
              Reporter:
              epavlova Ekaterina Pavlova
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Imported: