changeset: 223398:fb440bc3b93a tag: tip user: Vladimir Voskresensky date: Fri Jun 01 15:17:20 2012 +0400 summary: fixed #202681 - Duplicated opened files in the IDE diff --git a/openide.windows/src/org/openide/windows/CloneableOpenSupport.java b/openide.windows/src/org/openide/windows/CloneableOpenSupport.java --- a/openide.windows/src/org/openide/windows/CloneableOpenSupport.java +++ b/openide.windows/src/org/openide/windows/CloneableOpenSupport.java @@ -76,7 +76,7 @@ public CloneableOpenSupport(Env env) { this.env = env; - Listener l = new Listener(env); + Listener l = new Listener(env, this); this.allEditors = l; // attach property change listener to be informed about loosing validity @@ -308,12 +308,15 @@ static final long serialVersionUID = -1934890789745432531L; /** environment to use as connection to outside world */ - private Env env; + private final Env env; + // rerefence to prevent GC of COS created in readResolve() by call to support() + private final transient CloneableOpenSupport refCOS; /** Constructor. */ - public Listener(Env env) { + public Listener(Env env, CloneableOpenSupport cos) { this.env = env; + this.refCOS = cos; } /** Getter for the associated CloneableOpenSupport