You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2018/09/30 03:45:11 UTC
[kylin] branch master updated: KYLIN-3588,
fix potentially duplicate putting in
RemoveBlackoutRealizationsRule#getFilterImpl
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 <24...@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;
}