//don't optimze if there is a failure
if ( raisedException == null ) {
for (DirectoryProvider provider : lockedProviders) {
Workspace.DPStatistics stats = dpStatistics.get( provider );
if ( !stats.optimizationForced ) {
OptimizerStrategy optimizerStrategy = searchFactoryImplementor.getOptimizerStrategy( provider );
optimizerStrategy.addTransaction( stats.operations );
try {
optimizerStrategy.optimize( this );
}
catch (SearchException e) {
raisedException = new SearchException( "Exception while optimizing directoryProvider: "
+ provider.getDirectory().toString(), e );
break; //no point in continuing