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

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

    XMLWordPrintable

    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: