--- xml/core/src/org/netbeans/modules/xml/core/wizard/XMLWizardIterator.java +++ xml/core/src/org/netbeans/modules/xml/core/wizard/XMLWizardIterator.java @@ -52,6 +52,8 @@ import java.io.File; import java.util.Set; import java.io.IOException; +import java.lang.ref.Reference; +import java.lang.ref.WeakReference; import java.net.URL; import java.text.DateFormat; import java.util.Date; @@ -110,7 +112,7 @@ /** Singleton instance of JavaWizardIterator, should it be ever needed. */ - private static XMLWizardIterator instance; + private static Reference instance; private transient Map listenersMap = new HashMap(2); private transient String[] beforeSteps; @@ -121,10 +123,12 @@ * for constructing the instance from filesystem.attributes. */ public static synchronized XMLWizardIterator singleton() { - if (instance == null) { - instance = new XMLWizardIterator(); + XMLWizardIterator it = instance == null ? null : instance.get(); + if (it == null) { + it = new XMLWizardIterator(); + instance = new WeakReference(it); } - return instance; + return it; } public void initialize(TemplateWizard templateWizard) {