Утечка памяти в конфигурации OSGI / Eclipse - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть фрагмент кода, работающий в комплекте Eclipse / OSGI, который создает локально много LinkedList.Эти LinkedList должны собираться мусором, но это не так.Вот анализ кучи из VisualVM:

VisualVM Heap analysis

Похоже, что существует объект, связанный с Locale, удерживающий объекты LinkedList от мусора-collected.Я подозреваю, что конфигурация OSGI / Eclipse нашего приложения как-то не так, но я понятия не имею, с чего начать.

Вот код:

public class Foo
{
  public void method(String a, String b, String c, Set<Bar> result) {    
    Bar bar = new Bar(a,b,c);
    ...
    if (!bar.getL().isEmpty())
      result.put(bar);
  }


  public static class Bar {

    private String a;
    private String b;
    private String c;

    private List<Integer> l;

    public Bar(String a, String b, String c)
    {
      super();
      this.a = a;
      this.b = b;
      this.c = c;
      missingOrders = new LinkedList<>();
    }

    public void add(int i) {
      l.add(i);
    }

    public List<Integer> getL() {
      return l;
    }

    @Override
    public String toString()
    {
      return "Bar [a=" + a + ", b=" + b
          + ", c=" + c + ", l=" + l + "]";
    }  
  }
}

Заранее спасибо за вашу помощь.

...