FeatureModel featureModel = layer.getFeatureModel();
Geometry oldGeometry = featureModel.getGeometry(feature);
if (null != oldGeometry) {
// invalidate
recorder.record("layer", "Invalidate geometry for old version of feature");
Envelope oldEnvelope = oldGeometry.getEnvelopeInternal();
log.debug("invalidate old feature area {}", oldEnvelope);
cacheManager.invalidate(layer, oldEnvelope);
}
}
// invalidate area for new feature
InternalFeature feature = context.get(PipelineCode.FEATURE_KEY, InternalFeature.class);
Geometry geometry = feature.getGeometry();
if (null != geometry) {
recorder.record("layer", "Invalidate geometry for new feature");
Envelope envelope = geometry.getEnvelopeInternal();
log.debug("invalidate new feature area {}", envelope);
cacheManager.invalidate(layer, envelope);
}
} catch (Throwable t) { //NOPMD
// have to prevent caching code from making the pipeline fail, log and discard errors