diff -r 0a2bfc241d17 cnd.source/src/org/netbeans/modules/cnd/source/CppEditorSupport.java --- a/cnd.source/src/org/netbeans/modules/cnd/source/CppEditorSupport.java Thu Jun 07 09:56:29 2012 +0200 +++ b/cnd.source/src/org/netbeans/modules/cnd/source/CppEditorSupport.java Thu Jun 07 10:36:08 2012 +0200 @@ -128,6 +128,7 @@ */ public CppEditorSupport(SourceDataObject obj, Node nodeDelegate) { super(obj, null, new Environment(obj)); + new Exception("For " + obj).printStackTrace(); this.ic = obj.getInstanceContent(); if (nodeDelegate != null) { this.ic.add(nodeDelegate); diff -r 0a2bfc241d17 cnd.source/src/org/netbeans/modules/cnd/source/CppEditorSupportProvider.java --- a/cnd.source/src/org/netbeans/modules/cnd/source/CppEditorSupportProvider.java Thu Jun 07 09:56:29 2012 +0200 +++ b/cnd.source/src/org/netbeans/modules/cnd/source/CppEditorSupportProvider.java Thu Jun 07 10:36:08 2012 +0200 @@ -71,25 +71,19 @@ } static class CppEditorSupportFactory implements Convertor { - // FIXUP for IZ 202681, if we do not keep a reference to CppEditorSupport it will - // be released and a new instance will be created due to MultiView peer deserialization - private final Map cache = new WeakHashMap(); - public CppEditorSupportFactory() { } @Override public synchronized CppEditorSupport convert(SourceDataObject obj) { - CppEditorSupport res = cache.get(obj); - if (res == null) { - Node nodeDelegate = null; - if (obj.isValid()) { - nodeDelegate = obj.getNodeDelegate(); - } - res = new CppEditorSupport(obj, nodeDelegate); - cache.put(obj, res); + if (obj.es != null) { + return obj.es; } - return res; + Node nodeDelegate = null; + if (obj.isValid()) { + nodeDelegate = obj.getNodeDelegate(); + } + return obj.es = new CppEditorSupport(obj, nodeDelegate); } @Override @@ -107,8 +101,7 @@ return id(obj); } - private synchronized void notifyClosed(DataObject dobj) { - cache.remove(dobj); + private void notifyClosed(DataObject dobj) { } } diff -r 0a2bfc241d17 cnd.source/src/org/netbeans/modules/cnd/source/SourceDataObject.java --- a/cnd.source/src/org/netbeans/modules/cnd/source/SourceDataObject.java Thu Jun 07 09:56:29 2012 +0200 +++ b/cnd.source/src/org/netbeans/modules/cnd/source/SourceDataObject.java Thu Jun 07 10:36:08 2012 +0200 @@ -69,6 +69,7 @@ static final long serialVersionUID = -6788084224129713370L; private InstanceContent ic; private Lookup myLookup; + CppEditorSupport es; public SourceDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException {