[270665] Manual validation not calling IValidator.cleanup(IReporter)
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 045be17..c9f7b53 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
@@ -1111,15 +1111,22 @@
* <code>process</code> also sends output to the <code>IProgressMonitor</code>, and calls
* the current Validator to validate the resource.
*
- * To process a resource, there are several steps: 1. check if the resource is registered for
+ * <p>To process a resource, there are several steps:</p>
+ * <p>1. check if the resource is registered for
* this validator (i.e., the validator has either specified it in a filter, or has not filtered
- * it out explicitly) 2. call <code>isValidationSource</code> on the current validator with
+ * it out explicitly)</p>
+ *
+ * <p>2. call <code>isValidationSource</code> on the current validator with
* the current resource. This method performs further filtering by the Validator itself, in
* addition to the static filtering done by the framework, based on the information in
- * plugin.xml. 3. If the resource passes both filters, call <code>validate</code> on the
- * validator, with the resource. 4. When complete (either by failing to pass a filter, or by the
+ * plugin.xml.</p>
+ *
+ * <p>3. If the resource passes both filters, call <code>validate</code> on the
+ * validator, with the resource.</p>
+ *
+ * <p>4. When complete (either by failing to pass a filter, or by the
* completion of the <code>validate</code>), increment the IProgressMonitor's status by one
- * (i.e., one resource has been processed.)
+ * (i.e., one resource has been processed.)</p>
*/
private final void launchValidator(WorkbenchReporter reporter, IValidator validator, ValidatorMetaData vmd, IWorkbenchContext helper, IFileDelta[] delta) {
if (reporter == null)return;
diff --git a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Validator.java b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Validator.java
index dcaea84..2adb3bb 100644
--- a/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Validator.java
+++ b/plugins/org.eclipse.wst.validation/vf2/org/eclipse/wst/validation/Validator.java
@@ -752,7 +752,12 @@
ValidatorLauncher.getLauncher().start(helper, v, reporter);
}
finally {
- helper.cleanup(reporter);
+ try {
+ v.cleanup(reporter);
+ }
+ finally {
+ helper.cleanup(reporter);
+ }
}
vr.incrementError(reporter.getSeverityHigh());