[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;
+	}
+	
 }