You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ds...@apache.org on 2010/03/02 13:15:53 UTC

svn commit: r917989 - /felix/trunk/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java

Author: dsavage
Date: Tue Mar  2 12:15:53 2010
New Revision: 917989

URL: http://svn.apache.org/viewvc?rev=917989&view=rev
Log:
Make sigil projects singletons within IDE to fix problems with inconsistent views (FELIX-2153)

Modified:
    felix/trunk/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java

Modified: felix/trunk/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java
URL: http://svn.apache.org/viewvc/felix/trunk/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java?rev=917989&r1=917988&r2=917989&view=diff
==============================================================================
--- felix/trunk/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java (original)
+++ felix/trunk/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/SigilCore.java Tue Mar  2 12:15:53 2010
@@ -241,11 +241,21 @@
     }
 
 
+    private static HashMap<IProject, SigilProject> projects = new HashMap<IProject, SigilProject>();
+    
     public static ISigilProjectModel create( IProject project ) throws CoreException
     {
         if ( project.hasNature( NATURE_ID ) )
         {
-            return new SigilProject( project );
+            SigilProject p = null;
+            synchronized( projects ) {
+                p = projects.get(project);
+                if ( p == null ) {
+                   p = new SigilProject( project );
+                   projects.put(project, p);
+                }
+            }
+            return p; 
         }
         else
         {
@@ -692,5 +702,4 @@
             }
         }
     }
-
 }