Связанные компоненты ViewScoped приводят к утечкам памяти

В нашем проекте JavaEE6 (EJB3, JSF2) на JBoss 7.1.1 кажется, что у нас есть утечка памяти с bean-компонентами @ViewScoped. Последние три дня яМы потратили время на расследование этого вопроса. Так что я'Мы создали простой проект с двумя страницами, чтобы гарантировать, что после выхода первой страницы бин @ViewScoped будет выпущен.

  //web.xml
   javax.faces.STATE_SAVING_METHOD
   server


   javax.faces.PARTIAL_STATE_SAVING
   false

TreeBean.java

@ManagedBean
@ViewScoped
public class TreeBean implements Serializable {
 private TreeNode root;  
 public static AtomicInteger count = new AtomicInteger(0);

@Override
protected void finalize() throws Throwable {
    System.out.println("TreeBean beans count: " + count.decrementAndGet() + " (FINALISATION)");
}


public TreeBean() {  
    super();
    System.out.println("TreeBean beans count: " + count.incrementAndGet() + " (INITIALISATION)");
}  

first.xhtml

  ....
  
        
    ....
   
    ....            

second.xhtml

  ....
  
    ....
   
    ....

SYSOUT:

  INFO  [stdout] (http--0.0.0.0-8080-4) TreeBean beans count: 1 (INITIALISATION)
  INFO  [stdout] (http--0.0.0.0-8080-4) TreeBean beans count: 2 (INITIALISATION)
  INFO  [stdout] (http--0.0.0.0-8080-4) TreeBean beans count: 3 (INITIALISATION)
  ......
  INFO  [stdout] (Finalizer) TreeBean beans count: 2 (FINALISATION)
  INFO  [stdout] (Finalizer) TreeBean beans count: 1 (FINALISATION)
  INFO  [stdout] (Finalizer) TreeBean beans count: 0 (FINALISATION)

и все думают, что хорошо, пока ямы добавили зависимость к другому компоненту @ViewScoped

TreeBean.java

@ManagedBean
@ViewScoped
public class TreeBean implements Serializable {
 private TreeNode root;  

@ManagedProperty(value = "#{treeNodeBean}")
private TreeNodeBean treeNodeBean;


 public static AtomicInteger count = new AtomicInteger(0);

@Override
protected void finalize() throws Throwable {
    System.out.println("TreeBean beans count: " + count.decrementAndGet() + " (FINALISATION)");
}


public TreeBean() {  
    super();
    System.out.println("TreeBean beans count: " + count.incrementAndGet() + " (INITIALISATION)");
}  

TreeNodeBean.java

@ManagedBean
@ViewScoped
public class TreeNodeBean implements Serializable {

     private String treeNodeItem="TreeNodeItem";

}

И после этого ни один боб не был выпущен. Кто-нибудь знает, как с этим бороться? Это ошибка или она может быть где-то настроена?

Ответы на вопрос(1)

Ваш ответ на вопрос