This is an automated email from the ASF dual-hosted git repository. shaofengshi pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/master by this push: new 974bf6f KYLIN-3588, fix potentially duplicate putting in RemoveBlackoutRealizationsRule#getFilterImpl 974bf6f is described below commit 974bf6f3a971d256e2a93a11942a87143e61db21 Author: tttMelody <245915...@qq.com> AuthorDate: Tue Sep 25 14:49:47 2018 +0800 KYLIN-3588, fix potentially duplicate putting in RemoveBlackoutRealizationsRule#getFilterImpl --- .../routing/rules/RemoveBlackoutRealizationsRule.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/query/src/main/java/org/apache/kylin/query/routing/rules/RemoveBlackoutRealizationsRule.java b/query/src/main/java/org/apache/kylin/query/routing/rules/RemoveBlackoutRealizationsRule.java index c64f6da..278bb46 100644 --- a/query/src/main/java/org/apache/kylin/query/routing/rules/RemoveBlackoutRealizationsRule.java +++ b/query/src/main/java/org/apache/kylin/query/routing/rules/RemoveBlackoutRealizationsRule.java @@ -59,13 +59,16 @@ public class RemoveBlackoutRealizationsRule extends RoutingRule { private static IRealizationFilter getFilterImpl(KylinConfig conf) { IRealizationFilter filter = filters.get(conf); if (filter == null) { - try { - Class<? extends IRealizationFilter> clz = ClassUtil.forName(conf.getQueryRealizationFilter(), IRealizationFilter.class); - filter = clz.getConstructor(KylinConfig.class).newInstance(conf); - } catch (Exception e) { - throw new RuntimeException(e); + synchronized (RemoveBlackoutRealizationsRule.class) { + try { + Class<? extends IRealizationFilter> clz = ClassUtil.forName(conf.getQueryRealizationFilter(), + IRealizationFilter.class); + filter = clz.getConstructor(KylinConfig.class).newInstance(conf); + } catch (Exception e) { + throw new RuntimeException(e); + } + filters.put(conf, filter); } - filters.put(conf, filter); } return filter; }