/**
* Search the first matching processor
*/
private Processor getProcessor() {
final ProcessingContext processorContext = new ServletProcessingContext(this.request, this, this.getSlingResponse(), this.contentType);
Processor found = null;
final List<ProcessorConfiguration> processorConfigs = this.processorManager.getProcessorConfigurations();
final Iterator<ProcessorConfiguration> i = processorConfigs.iterator();
while ( found == null && i.hasNext() ) {
final ProcessorConfiguration config = i.next();
if ( config.match(processorContext) ) {
try {
found = this.processorManager.getProcessor(config, processorContext);
this.request.getRequestProgressTracker().log("Found processor for post processing {0}", config);
} catch (final SlingException se) {
// if an exception occurs during setup of the pipeline and we are currently
// already processing an error, we ignore this!
if ( processorContext.getRequest().getAttribute("javax.servlet.error.status_code") != null ) {
this.request.getRequestProgressTracker().log("Ignoring found processor for post processing {0}" +
" as an error occured ({1}) during setup while processing another error.", config, se);
} else {
throw se;
}