Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 瓦丁-破坏关闭窗口_Java_Memory Leaks_Vaadin - Fatal编程技术网

Java 瓦丁-破坏关闭窗口

Java 瓦丁-破坏关闭窗口,java,memory-leaks,vaadin,Java,Memory Leaks,Vaadin,我有一个使用multitab方法的Vaadin应用程序应用程序.getWindow(字符串名称)被重写的方式是,如果未找到super.getWindow(名称),它将创建一个新窗口并将其添加到应用程序中。所有窗口都有窗口。CloseListener,用于打印要输出的消息。我还看到了创建和销毁windows-constructor和finalize()的时刻,它们也将消息打印到控制台 当我刷新同一个浏览器选项卡时,会创建一个新窗口,我会在控制台中看到window.CloseListener的消息,

我有一个使用multitab方法的Vaadin应用程序<代码>应用程序.getWindow(字符串名称)被重写的方式是,如果未找到
super.getWindow(名称)
,它将创建一个新窗口并将其添加到应用程序中。所有窗口都有
窗口。CloseListener
,用于打印要输出的消息。我还看到了创建和销毁windows-constructor和
finalize()
的时刻,它们也将消息打印到控制台

当我刷新同一个浏览器选项卡时,会创建一个新窗口,我会在控制台中看到
window.CloseListener
的消息,并且没有来自
finalize()
方法的消息。如果我添加一个计算实例数的单例原子长度(外接程序构造函数,dec in
finalize()
),我会看到实例数(在这些刷新中)不断增加,并且不会随着时间而减少

似乎瓦丁的商店不知怎么关上了窗户。我还
jmap
”创建了一个应用程序,并在eclipsemat中打开了堆文件。MAT显示关闭窗口的一个组件,
UriFragmentUtility
,被一个链引用:
Application
->
WebApplicationContext
->
CommunicationManager
->(通过paintableMap)
UriFragmentUtility
(见附图)

如何销毁关闭的窗口以防止内存泄漏

UriFragmentUtility对于GC根,
dofaApplication
com.vaadin.Application
“>

更新 我发现,在代码窗口中,只有添加到Vaadin
应用程序
,而没有删除。添加
应用程序后。removeWindow()
与刷新同一选项卡相关的内容没有任何更改