[152659] Validation errors
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationOperation.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationOperation.java
index 562e6fd..4409e02 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationOperation.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidationOperation.java
@@ -839,8 +839,17 @@
while( iterator.hasNext() ){
vmd = (ValidatorMetaData) iterator.next();
+ IValidator valInstance = null;
try {
- if( isFork() && vmd.getValidator() instanceof IValidatorJob ){
+ valInstance = vmd.getValidator();
+ } catch (InstantiationException e1) {
+ if(!ValidatorManager.getManager().getProblemValidators().contains(vmd)) {
+ ValidatorManager.getManager().getProblemValidators().add(vmd);
+ System.out.println(e1.getMessage());
+ }
+ }
+
+ if( isFork() && (valInstance != null) && valInstance instanceof IValidatorJob ){
try {
delta = getFileDeltas(reporter.getProgressMonitor(), vmd);
} catch (CoreException e) {
@@ -850,17 +859,8 @@
if( willRun ){
jobValidators.add( vmd );
}
- }else{
+ }else if (valInstance != null){
validators.add( vmd );
- }
- } catch (InstantiationException e) {
- Logger.getLogger().logError(e);
- if (logger.isLoggingLevel(Level.SEVERE)) {
- LogEntry entry = ValidationPlugin.getLogEntry();
- entry.setSourceID("ValidationOperation.validate(WorkbenchReporter)"); //$NON-NLS-1$
- entry.setTargetException(e);
- logger.write(Level.SEVERE, entry);
- }
}
}
if( jobValidators.size() > 0 ){
diff --git a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorManager.java b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorManager.java
index 9db3850..68605e6 100644
--- a/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorManager.java
+++ b/plugins/org.eclipse.wst.validation/validate/org/eclipse/wst/validation/internal/operations/ValidatorManager.java
@@ -66,6 +66,7 @@
private static Class _messageLimitOwner = null;
private String[] _internalOwners = null;
private Map validatorMsgs = Collections.synchronizedMap( new HashMap() );
+ private Set problemValidators = new HashSet();
/**
* ValidatorManager constructor comment.
@@ -1154,5 +1155,11 @@
list.clear();
}
validatorMsgs.remove( validator );
- }
+ }
+
+
+ public Set getProblemValidators() {
+ return problemValidators;
+ }
+
}