У меня есть фрагмент кода, работающий в комплекте Eclipse / OSGI, который создает локально много LinkedList
.Эти LinkedList
должны собираться мусором, но это не так.Вот анализ кучи из VisualVM:
Похоже, что существует объект, связанный с 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 + "]";
}
}
}
Заранее спасибо за вашу помощь.