web/src/main/java/org/springframework/security/web/util/ThrowableAnalyzer.java
protected final void registerExtractor(Class<? extends Throwable> throwableType,
			ThrowableCauseExtractor extractor) {
		Assert.notNull(extractor, "Invalid extractor: null");

		this.extractorMap.put(throwableType, extractor);
	}
protected final void registerExtractor(Class<? extends Throwable> throwableType,
			ThrowableCauseExtractor extractor) {
		Assert.notNull(extractor, "Invalid extractor: null");

		this.extractorMap.put(throwableType, extractor);
	}
Registers a <code>ThrowableCauseExtractor</code> for the specified type. <i>Can be
used in subclasses overriding {@link #initExtractorMap()}.</i>

@param throwableType the type (has to be a subclass of <code>Throwable</code>)
@param extractor the associated <code>ThrowableCauseExtractor</code> (not
<code>null</code>)

@throws IllegalArgumentException if one of the arguments is invalid