KYLIN-1492 fix CI
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/e088cb5d Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/e088cb5d Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/e088cb5d Branch: refs/heads/master Commit: e088cb5d1f0cf4d493d2b7dedd94edd58c277f5a Parents: d52a8ca Author: Li Yang <[email protected]> Authored: Thu Mar 17 18:50:55 2016 +0800 Committer: Li Yang <[email protected]> Committed: Thu Mar 17 18:51:19 2016 +0800 ---------------------------------------------------------------------- .../kylin/common/persistence/ResourceTool.java | 17 +- .../org/apache/kylin/cube/kv/CubeDimEncMap.java | 169 ++++++++++--------- .../rest/service/BadQueryDetectorTest.java | 15 +- 3 files changed, 114 insertions(+), 87 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/e088cb5d/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java b/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java index 2e1d527..b11fe1a 100644 --- a/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java +++ b/core-common/src/main/java/org/apache/kylin/common/persistence/ResourceTool.java @@ -124,12 +124,17 @@ public class ResourceTool { // case of resource (not a folder) if (children == null) { if (matchFilter(path)) { - RawResource res = src.getResource(path); - if (res != null) { - dst.putResource(path, res.inputStream, res.timestamp); - res.inputStream.close(); - } else { - System.out.println("Resource not exist for " + path); + try { + RawResource res = src.getResource(path); + if (res != null) { + dst.putResource(path, res.inputStream, res.timestamp); + res.inputStream.close(); + } else { + System.out.println("Resource not exist for " + path); + } + } catch (Exception ex) { + System.err.println("Failed to open " + path); + ex.printStackTrace(); } } } http://git-wip-us.apache.org/repos/asf/kylin/blob/e088cb5d/core-cube/src/main/java/org/apache/kylin/cube/kv/CubeDimEncMap.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/kv/CubeDimEncMap.java b/core-cube/src/main/java/org/apache/kylin/cube/kv/CubeDimEncMap.java index e3c81f1..e8c5266 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/kv/CubeDimEncMap.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/kv/CubeDimEncMap.java @@ -1,80 +1,89 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. -*/ - -package org.apache.kylin.cube.kv; - -import java.util.Map; - -import org.apache.kylin.cube.CubeSegment; -import org.apache.kylin.cube.model.CubeDesc; -import org.apache.kylin.cube.model.RowKeyColDesc; -import org.apache.kylin.dimension.Dictionary; -import org.apache.kylin.dimension.DictionaryDimEnc; -import org.apache.kylin.dimension.DimensionEncoding; -import org.apache.kylin.dimension.FixedLenDimEnc; -import org.apache.kylin.dimension.IDimensionEncodingMap; -import org.apache.kylin.metadata.model.TblColRef; - -import com.google.common.collect.Maps; - -public class CubeDimEncMap implements IDimensionEncodingMap { - - final private CubeDesc cubeDesc; - final private CubeSegment seg; - final private Map<TblColRef, Dictionary<String>> dictionaryMap; - final private Map<TblColRef, DimensionEncoding> encMap = Maps.newHashMap(); - - public CubeDimEncMap(CubeSegment seg) { - this.cubeDesc = seg.getCubeDesc(); - this.seg = seg; - this.dictionaryMap = null; - } - - public CubeDimEncMap(CubeDesc cubeDesc, Map<TblColRef, Dictionary<String>> dictionaryMap) { - this.cubeDesc = cubeDesc; - this.seg = null; - this.dictionaryMap = dictionaryMap; - } - - @Override - public DimensionEncoding get(TblColRef col) { - DimensionEncoding result = encMap.get(col); - if (result == null) { - RowKeyColDesc colDesc = cubeDesc.getRowkey().getColDesc(col); - if (colDesc.isUsingDictionary()) { - // dictionary encoding - result = new DictionaryDimEnc(getDictionary(col)); - } - else { - // fixed length encoding - result = new FixedLenDimEnc(colDesc.getLength()); - } - encMap.put(col, result); - } - return result; - } - - @Override - public Dictionary<String> getDictionary(TblColRef col) { - if (seg == null) - return dictionaryMap.get(col); - else - return seg.getDictionary(col); - } - -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + +package org.apache.kylin.cube.kv; + +import java.util.Map; + +import org.apache.kylin.cube.CubeSegment; +import org.apache.kylin.cube.model.CubeDesc; +import org.apache.kylin.cube.model.RowKeyColDesc; +import org.apache.kylin.dimension.Dictionary; +import org.apache.kylin.dimension.DictionaryDimEnc; +import org.apache.kylin.dimension.DimensionEncoding; +import org.apache.kylin.dimension.FixedLenDimEnc; +import org.apache.kylin.dimension.IDimensionEncodingMap; +import org.apache.kylin.metadata.model.TblColRef; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.collect.Maps; + +public class CubeDimEncMap implements IDimensionEncodingMap { + + private static final Logger logger = LoggerFactory.getLogger(CubeDimEncMap.class); + + final private CubeDesc cubeDesc; + final private CubeSegment seg; + final private Map<TblColRef, Dictionary<String>> dictionaryMap; + final private Map<TblColRef, DimensionEncoding> encMap = Maps.newHashMap(); + + public CubeDimEncMap(CubeSegment seg) { + this.cubeDesc = seg.getCubeDesc(); + this.seg = seg; + this.dictionaryMap = null; + } + + public CubeDimEncMap(CubeDesc cubeDesc, Map<TblColRef, Dictionary<String>> dictionaryMap) { + this.cubeDesc = cubeDesc; + this.seg = null; + this.dictionaryMap = dictionaryMap; + } + + @Override + public DimensionEncoding get(TblColRef col) { + DimensionEncoding result = encMap.get(col); + if (result == null) { + RowKeyColDesc colDesc = cubeDesc.getRowkey().getColDesc(col); + if (colDesc.isUsingDictionary()) { + // dictionary encoding + Dictionary<String> dict = getDictionary(col); + if (dict == null) { + logger.warn("No dictionary found for dict-encoding column " + col + ", segment " + seg); + result = new FixedLenDimEnc(0); + } else { + result = new DictionaryDimEnc(dict); + } + } else { + // fixed length encoding + result = new FixedLenDimEnc(colDesc.getLength()); + } + encMap.put(col, result); + } + return result; + } + + @Override + public Dictionary<String> getDictionary(TblColRef col) { + if (seg == null) + return dictionaryMap.get(col); + else + return seg.getDictionary(col); + } + +} http://git-wip-us.apache.org/repos/asf/kylin/blob/e088cb5d/server/src/test/java/org/apache/kylin/rest/service/BadQueryDetectorTest.java ---------------------------------------------------------------------- diff --git a/server/src/test/java/org/apache/kylin/rest/service/BadQueryDetectorTest.java b/server/src/test/java/org/apache/kylin/rest/service/BadQueryDetectorTest.java index e0c7704..3481fa7 100644 --- a/server/src/test/java/org/apache/kylin/rest/service/BadQueryDetectorTest.java +++ b/server/src/test/java/org/apache/kylin/rest/service/BadQueryDetectorTest.java @@ -22,11 +22,24 @@ import static org.junit.Assert.*; import java.util.ArrayList; +import org.apache.kylin.common.util.LocalFileMetadataTestCase; import org.apache.kylin.rest.request.SQLRequest; +import org.junit.After; +import org.junit.Before; import org.junit.Test; -public class BadQueryDetectorTest { +public class BadQueryDetectorTest extends LocalFileMetadataTestCase { + @Before + public void before() { + super.createTestMetadata(); + } + + @After + public void after() { + super.cleanupTestMetadata(); + } + @SuppressWarnings("deprecation") @Test public void test() throws InterruptedException {
