in modules/core/src/main/java/org/apache/fluo/core/observer/v1/ObserversV1.java [77:114]
public Observer getObserver(Column col) {
List<Observer> observerList;
observerList = getObserverList(col);
synchronized (observerList) {
if (!observerList.isEmpty()) {
return observerList.remove(observerList.size() - 1);
}
}
Observer observer = null;
org.apache.fluo.api.config.ObserverSpecification observerConfig = strongObservers.get(col);
if (observerConfig == null) {
observerConfig = weakObservers.get(col);
}
if (observerConfig != null) {
try {
observer =
Class.forName(observerConfig.getClassName()).asSubclass(Observer.class).newInstance();
observer.init(new ObserverContext(env, observerConfig.getConfiguration()));
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
throw new RuntimeException(e);
}
if (!observer.getObservedColumn().getColumn().equals(col)) {
throw new IllegalStateException(
"Mismatch between configured column and class column " + observerConfig.getClassName()
+ " " + col + " " + observer.getObservedColumn().getColumn());
}
}
return observer;
}