Author: akazakov
Date: 2011-08-23 20:19:14 -0400 (Tue, 23 Aug 2011)
New Revision: 34197
Modified:
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/ValidatorManager.java
Log:
Improved synchronization in ValidatorManager
Modified:
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/ValidatorManager.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/ValidatorManager.java 2011-08-24
00:10:45 UTC (rev 34196)
+++
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/ValidatorManager.java 2011-08-24
00:19:14 UTC (rev 34197)
@@ -73,21 +73,21 @@
validatingProjects.add(rootProject);
}
}
- synchronized (validatingProjects) {
- try {
- validationContextManager.clearValidatedProjectsList();
- Set<IFile> changedFiles = validationHelper.getChangedFiles();
- if(!changedFiles.isEmpty()) {
- status = validate(changedFiles, validationHelper, reporter);
- } else if(!validationContextManager.getRegisteredFiles().isEmpty()) {
- validationContextManager.clearAllResourceLinks();
- status = validateAll(validationHelper, reporter);
- }
- } finally {
- if(validationContextManager!=null) {
- validationContextManager.clearRegisteredFiles();
- }
- validationHelper.cleanup(); // See
https://issues.jboss.org/browse/JBIDE-8726
+ try {
+ validationContextManager.clearValidatedProjectsList();
+ Set<IFile> changedFiles = validationHelper.getChangedFiles();
+ if(!changedFiles.isEmpty()) {
+ status = validate(changedFiles, validationHelper, reporter);
+ } else if(!validationContextManager.getRegisteredFiles().isEmpty()) {
+ validationContextManager.clearAllResourceLinks();
+ status = validateAll(validationHelper, reporter);
+ }
+ } finally {
+ if(validationContextManager!=null) {
+ validationContextManager.clearRegisteredFiles();
+ }
+ validationHelper.cleanup(); // See
https://issues.jboss.org/browse/JBIDE-8726
+ synchronized (validatingProjects) {
for (IProject rootProject : rootProjects) {
validatingProjects.remove(rootProject);
}