private synchronized NativeJdbcExtractor getDelegatedExtractor() {
        try {
            if (delegatedExtractor == null) {
                delegatedExtractor = (NativeJdbcExtractor) extractorClass.newInstance();
            }
        } catch (IllegalAccessException e) {
            throw new NestableRuntimeException("Error occurred trying to instantiate a native extractor of type: "
                                               + extractorClass, e);
        } catch (InstantiationException e) {
            throw new NestableRuntimeException("Error occurred trying to instantiate a native extractor of type: "
                                               + extractorClass, e);
        }

        if (delegatedExtractor != null) {
            return delegatedExtractor;
        } else {
            throw new NestableRuntimeException("Error occurred trying to instantiate a native extractor of type: "
                                               + extractorClass);
        }
    }
A class to lazily instantiate a native JDBC extractor.
<p />
We need to lazily instantiate it because otherwise Spring will construct it for us, and users might get class not
found errors (eg if they're not using Weblogic and Spring tries to load the WeblogicNativeJdbcExtractor, things get
ugly).
node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/lob/LazyNativeJdbcExtractor.java