You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2015/01/23 09:32:09 UTC
[22/50] [abbrv] incubator-kylin git commit: drop
CubeIntegrityException.java
drop CubeIntegrityException.java
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/6b996756
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/6b996756
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/6b996756
Branch: refs/heads/inverted-index
Commit: 6b996756a3fbea1cf003c15093c2f6d975a7df82
Parents: 46c9a13
Author: Li, Yang <ya...@ebay.com>
Authored: Thu Jan 22 17:40:21 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Thu Jan 22 17:40:21 2015 +0800
----------------------------------------------------------------------
.../java/com/kylinolap/cube/CubeManager.java | 19 ++++-----
.../kylinolap/cube/CubeSegmentValidator.java | 27 ++++++------
.../cube/exception/CubeIntegrityException.java | 33 ---------------
.../kylinolap/cube/SegmentManagementTest.java | 34 +++++++--------
.../job/hadoop/cube/MergeCuboidMapperTest.java | 3 +-
.../rest/controller/CubeController.java | 1 -
.../com/kylinolap/rest/service/CubeService.java | 17 ++++----
.../com/kylinolap/rest/service/JobService.java | 44 +++++++++-----------
8 files changed, 65 insertions(+), 113 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6b996756/cube/src/main/java/com/kylinolap/cube/CubeManager.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/com/kylinolap/cube/CubeManager.java b/cube/src/main/java/com/kylinolap/cube/CubeManager.java
index aabac93..be22ea0 100644
--- a/cube/src/main/java/com/kylinolap/cube/CubeManager.java
+++ b/cube/src/main/java/com/kylinolap/cube/CubeManager.java
@@ -39,7 +39,6 @@ import com.kylinolap.common.persistence.ResourceStore;
import com.kylinolap.common.persistence.Serializer;
import com.kylinolap.common.restclient.Broadcaster;
import com.kylinolap.common.restclient.CaseInsensitiveStringCache;
-import com.kylinolap.cube.exception.CubeIntegrityException;
import com.kylinolap.cube.model.CubeBuildTypeEnum;
import com.kylinolap.cube.model.CubeDesc;
import com.kylinolap.cube.model.DimensionDesc;
@@ -270,18 +269,18 @@ public class CubeManager implements IRealizationProvider {
return false;
}
- public CubeSegment mergeSegments(CubeInstance cubeInstance, final long startDate, final long endDate) throws IOException, CubeIntegrityException {
+ public CubeSegment mergeSegments(CubeInstance cubeInstance, final long startDate, final long endDate) throws IOException {
if (cubeInstance.getBuildingSegments().size() > 0) {
throw new RuntimeException("There is already an allocating segment!");
}
if (cubeInstance.getDescriptor().getCubePartitionDesc().isPartitioned() == false) {
- throw new CubeIntegrityException("there is no partition date column specified, only full build is supported");
+ throw new IllegalStateException("there is no partition date column specified, only full build is supported");
}
List<CubeSegment> readySegments = cubeInstance.getSegment(SegmentStatusEnum.READY);
if (readySegments.isEmpty()) {
- throw new CubeIntegrityException("there are no segments in ready state");
+ throw new IllegalStateException("there are no segments in ready state");
}
long start = Long.MAX_VALUE;
long end = Long.MIN_VALUE;
@@ -307,7 +306,7 @@ public class CubeManager implements IRealizationProvider {
return newSegment;
}
- public CubeSegment appendSegments(CubeInstance cubeInstance, long startDate, long endDate) throws IOException, CubeIntegrityException {
+ public CubeSegment appendSegments(CubeInstance cubeInstance, long startDate, long endDate) throws IOException {
if (cubeInstance.getBuildingSegments().size() > 0) {
throw new RuntimeException("There is already an allocating segment!");
}
@@ -347,7 +346,7 @@ public class CubeManager implements IRealizationProvider {
// this method goes tests only
public void updateSegmentOnJobSucceed(CubeInstance cubeInstance, CubeBuildTypeEnum buildType, String segmentName, //
- String jobUuid, long lastBuildTime, long sizeKB, long sourceRecordCount, long sourceRecordsSize) throws IOException, CubeIntegrityException {
+ String jobUuid, long lastBuildTime, long sizeKB, long sourceRecordCount, long sourceRecordsSize) throws IOException {
List<CubeSegment> segmentsInNewStatus = cubeInstance.getSegments(SegmentStatusEnum.NEW);
CubeSegment cubeSegment = cubeInstance.getSegmentById(jobUuid);
@@ -375,7 +374,7 @@ public class CubeManager implements IRealizationProvider {
this.updateCube(cubeInstance);
}
- public void updateSegmentOnJobDiscard(CubeInstance cubeInstance, String segmentName) throws IOException, CubeIntegrityException {
+ public void updateSegmentOnJobDiscard(CubeInstance cubeInstance, String segmentName) throws IOException {
for (int i = 0; i < cubeInstance.getSegments().size(); i++) {
CubeSegment segment = cubeInstance.getSegments().get(i);
if (segment.getName().equals(segmentName) && segment.getStatus() != SegmentStatusEnum.READY) {
@@ -485,13 +484,13 @@ public class CubeManager implements IRealizationProvider {
/**
*/
- private void validateNewSegments(CubeInstance cubeInstance, CubeBuildTypeEnum buildType, CubeSegment newSegment) throws CubeIntegrityException {
- if (null == cubeInstance.getDescriptor().getCubePartitionDesc().getPartitionDateColumn()) {
+ private void validateNewSegments(CubeInstance cubeInstance, CubeBuildTypeEnum buildType, CubeSegment newSegment) {
+ if (cubeInstance.getDescriptor().getCubePartitionDesc().isPartitioned() == false) {
// do nothing for non-incremental build
return;
}
if (newSegment.getDateRangeEnd() <= newSegment.getDateRangeStart()) {
- throw new CubeIntegrityException(" end date.");
+ throw new IllegalStateException(" end date.");
}
CubeSegmentValidator cubeSegmentValidator = CubeSegmentValidator.getCubeSegmentValidator(buildType);
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6b996756/cube/src/main/java/com/kylinolap/cube/CubeSegmentValidator.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/com/kylinolap/cube/CubeSegmentValidator.java b/cube/src/main/java/com/kylinolap/cube/CubeSegmentValidator.java
index 67ee275..c2c6495 100644
--- a/cube/src/main/java/com/kylinolap/cube/CubeSegmentValidator.java
+++ b/cube/src/main/java/com/kylinolap/cube/CubeSegmentValidator.java
@@ -21,7 +21,6 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.List;
-import com.kylinolap.cube.exception.CubeIntegrityException;
import com.kylinolap.cube.model.CubeBuildTypeEnum;
import com.kylinolap.cube.model.CubeDesc;
import com.kylinolap.cube.model.CubePartitionDesc;
@@ -49,13 +48,13 @@ public abstract class CubeSegmentValidator {
}
}
- abstract void validate(CubeInstance cubeInstance, CubeSegment newSegment) throws CubeIntegrityException;
+ abstract void validate(CubeInstance cubeInstance, CubeSegment newSegment);
private static class MergeOperationValidator extends CubeSegmentValidator {
- private void checkContingency(CubeInstance cubeInstance, CubeSegment newSegment) throws CubeIntegrityException {
+ private void checkContingency(CubeInstance cubeInstance, CubeSegment newSegment) {
if (cubeInstance.getSegments().size() < 2) {
- throw new CubeIntegrityException("No segments to merge.");
+ throw new IllegalStateException("No segments to merge.");
}
CubeSegment startSeg = null;
CubeSegment endSeg = null;
@@ -69,11 +68,11 @@ public abstract class CubeSegmentValidator {
}
if (null == startSeg || null == endSeg || startSeg.getDateRangeStart() >= endSeg.getDateRangeStart()) {
- throw new CubeIntegrityException("Invalid date range.");
+ throw new IllegalStateException("Invalid date range.");
}
}
- private void checkLoopTableConsistency(CubeInstance cube, CubeSegment newSegment) throws CubeIntegrityException {
+ private void checkLoopTableConsistency(CubeInstance cube, CubeSegment newSegment) {
DictionaryManager dictMgr = DictionaryManager.getInstance(cube.getConfig());
List<CubeSegment> segmentList = cube.getMergingSegments(newSegment);
@@ -91,7 +90,7 @@ public abstract class CubeSegmentValidator {
}
}
} catch (IOException e) {
- throw new CubeIntegrityException("checkLoopTableConsistency not passed when allocating a new segment.");
+ throw new IllegalStateException("checkLoopTableConsistency not passed when allocating a new segment.");
}
}
}
@@ -102,14 +101,14 @@ public abstract class CubeSegmentValidator {
for (CubeSegment segment : segmentList) {
String temp = segment.getDictResPath(col);
if (temp == null) {
- throw new CubeIntegrityException("Dictionary is null on column: " + col + " Segment: " + segment);
+ throw new IllegalStateException("Dictionary is null on column: " + col + " Segment: " + segment);
}
if (dictOfFirstSegment == null) {
dictOfFirstSegment = temp;
} else {
if (!dictOfFirstSegment.equalsIgnoreCase(temp)) {
- throw new CubeIntegrityException("Segments with different dictionaries(on lookup table) cannot be merged");
+ throw new IllegalStateException("Segments with different dictionaries(on lookup table) cannot be merged");
}
}
}
@@ -124,14 +123,14 @@ public abstract class CubeSegmentValidator {
Collection<String> a = firstSegment.getSnapshots().values();
Collection<String> b = segment.getSnapshots().values();
if (!((a.size() == b.size()) && a.containsAll(b)))
- throw new CubeIntegrityException("Segments with different snapshots cannot be merged");
+ throw new IllegalStateException("Segments with different snapshots cannot be merged");
}
}
}
@Override
- public void validate(CubeInstance cubeInstance, CubeSegment newSegment) throws CubeIntegrityException {
+ public void validate(CubeInstance cubeInstance, CubeSegment newSegment) {
this.checkContingency(cubeInstance, newSegment);
this.checkLoopTableConsistency(cubeInstance, newSegment);
}
@@ -140,7 +139,7 @@ public abstract class CubeSegmentValidator {
private static class BuildOperationValidator extends CubeSegmentValidator {
@Override
- void validate(CubeInstance cubeInstance, CubeSegment newSegment) throws CubeIntegrityException {
+ void validate(CubeInstance cubeInstance, CubeSegment newSegment) {
List<CubeSegment> readySegments = cubeInstance.getSegments(SegmentStatusEnum.READY);
CubePartitionDesc cubePartitionDesc = cubeInstance.getDescriptor().getCubePartitionDesc();
final long initStartDate = cubePartitionDesc.isPartitioned() ? cubePartitionDesc.getPartitionDateStart() : 0;
@@ -149,13 +148,13 @@ public abstract class CubeSegmentValidator {
if (startDate == readySegment.getDateRangeStart() && startDate < readySegment.getDateRangeEnd()) {
startDate = readySegment.getDateRangeEnd();
} else {
- throw new CubeIntegrityException("there is gap in cube segments");
+ throw new IllegalStateException("there is gap in cube segments");
}
}
if (newSegment.getDateRangeStart() == startDate && startDate < newSegment.getDateRangeEnd()) {
return;
}
- throw new CubeIntegrityException("invalid segment date range from " + newSegment.getDateRangeStart() + " to " + newSegment.getDateRangeEnd());
+ throw new IllegalStateException("invalid segment date range from " + newSegment.getDateRangeStart() + " to " + newSegment.getDateRangeEnd());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6b996756/cube/src/main/java/com/kylinolap/cube/exception/CubeIntegrityException.java
----------------------------------------------------------------------
diff --git a/cube/src/main/java/com/kylinolap/cube/exception/CubeIntegrityException.java b/cube/src/main/java/com/kylinolap/cube/exception/CubeIntegrityException.java
deleted file mode 100644
index a0ab338..0000000
--- a/cube/src/main/java/com/kylinolap/cube/exception/CubeIntegrityException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2013-2014 eBay Software Foundation
- *
- * Licensed 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 com.kylinolap.cube.exception;
-
-/**
- * @author xduo
- *
- */
-public class CubeIntegrityException extends Exception {
- /**
- * @param string
- */
- public CubeIntegrityException(String string) {
- super(string);
- }
-
- private static final long serialVersionUID = -7924187859607404390L;
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6b996756/cube/src/test/java/com/kylinolap/cube/SegmentManagementTest.java
----------------------------------------------------------------------
diff --git a/cube/src/test/java/com/kylinolap/cube/SegmentManagementTest.java b/cube/src/test/java/com/kylinolap/cube/SegmentManagementTest.java
index b0f2c76..2121488 100644
--- a/cube/src/test/java/com/kylinolap/cube/SegmentManagementTest.java
+++ b/cube/src/test/java/com/kylinolap/cube/SegmentManagementTest.java
@@ -23,11 +23,6 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
-import com.kylinolap.metadata.model.SegmentStatusEnum;
-import com.kylinolap.metadata.project.ProjectInstance;
-import com.kylinolap.metadata.project.ProjectManager;
-import com.kylinolap.metadata.realization.RealizationStatusEnum;
-
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
@@ -36,10 +31,13 @@ import org.junit.Test;
import com.kylinolap.common.persistence.ResourceStore;
import com.kylinolap.common.util.JsonUtil;
import com.kylinolap.common.util.LocalFileMetadataTestCase;
-import com.kylinolap.cube.exception.CubeIntegrityException;
import com.kylinolap.cube.model.CubeBuildTypeEnum;
import com.kylinolap.cube.model.CubeDesc;
import com.kylinolap.metadata.MetadataManager;
+import com.kylinolap.metadata.model.SegmentStatusEnum;
+import com.kylinolap.metadata.project.ProjectInstance;
+import com.kylinolap.metadata.project.ProjectManager;
+import com.kylinolap.metadata.realization.RealizationStatusEnum;
/**
* @author ysong1
@@ -53,10 +51,10 @@ public class SegmentManagementTest extends LocalFileMetadataTestCase {
@Before
public void setUp() throws Exception {
this.createTestMetadata();
- MetadataManager.removeInstance(this.getTestConfig());
- CubeManager.removeInstance(this.getTestConfig());
- ProjectManager.removeInstance(this.getTestConfig());
- cubeMgr = CubeManager.getInstance(this.getTestConfig());
+ MetadataManager.removeInstance(getTestConfig());
+ CubeManager.removeInstance(getTestConfig());
+ ProjectManager.removeInstance(getTestConfig());
+ cubeMgr = CubeManager.getInstance(getTestConfig());
}
@After
@@ -76,7 +74,7 @@ public class SegmentManagementTest extends LocalFileMetadataTestCase {
}
@Test
- public void testInitialAndAppend() throws ParseException, IOException, CubeIntegrityException {
+ public void testInitialAndAppend() throws ParseException, IOException {
// create a new cube
CubeDescManager cubeDescMgr = getCubeDescManager();
CubeDesc desc = cubeDescMgr.getCubeDesc("test_kylin_cube_with_slr_desc");
@@ -144,7 +142,7 @@ public class SegmentManagementTest extends LocalFileMetadataTestCase {
}
@Test
- public void testRebuildSegment() throws IOException, CubeIntegrityException {
+ public void testRebuildSegment() throws IOException {
CubeInstance cubeInstance = cubeMgr.getCube("test_kylin_cube_with_slr_ready");
// rebuild segment
@@ -174,8 +172,8 @@ public class SegmentManagementTest extends LocalFileMetadataTestCase {
System.out.println(JsonUtil.writeValueAsIndentString(cubeInstance));
}
- @Test(expected = CubeIntegrityException.class)
- public void testInvalidRebuild() throws IOException, CubeIntegrityException {
+ @Test(expected = IllegalStateException.class)
+ public void testInvalidRebuild() throws IOException {
CubeInstance cubeInstance = cubeMgr.getCube("test_kylin_cube_with_slr_ready");
// rebuild segment
@@ -184,7 +182,7 @@ public class SegmentManagementTest extends LocalFileMetadataTestCase {
}
@Test
- public void testMergeSegments() throws IOException, CubeIntegrityException {
+ public void testMergeSegments() throws IOException {
CubeInstance cubeInstance = cubeMgr.getCube("test_kylin_cube_with_slr_ready_2_segments");
// merge segments
@@ -215,7 +213,7 @@ public class SegmentManagementTest extends LocalFileMetadataTestCase {
}
@Test
- public void testNonPartitionedCube() throws ParseException, IOException, CubeIntegrityException {
+ public void testNonPartitionedCube() throws ParseException, IOException {
// create a new cube
CubeDescManager cubeDescMgr = getCubeDescManager();
CubeDesc desc = cubeDescMgr.getCubeDesc("test_kylin_cube_without_slr_desc");
@@ -285,8 +283,8 @@ public class SegmentManagementTest extends LocalFileMetadataTestCase {
System.out.println(JsonUtil.writeValueAsIndentString(cubeInstance));
}
- @Test(expected = CubeIntegrityException.class)
- public void testInvalidAppend() throws ParseException, IOException, CubeIntegrityException {
+ @Test(expected = IllegalStateException.class)
+ public void testInvalidAppend() throws ParseException, IOException {
// create a new cube
CubeDescManager cubeDescMgr = getCubeDescManager();
CubeDesc desc = cubeDescMgr.getCubeDesc("test_kylin_cube_with_slr_desc");
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6b996756/job/src/test/java/com/kylinolap/job/hadoop/cube/MergeCuboidMapperTest.java
----------------------------------------------------------------------
diff --git a/job/src/test/java/com/kylinolap/job/hadoop/cube/MergeCuboidMapperTest.java b/job/src/test/java/com/kylinolap/job/hadoop/cube/MergeCuboidMapperTest.java
index 155c3d1..97e4abc 100644
--- a/job/src/test/java/com/kylinolap/job/hadoop/cube/MergeCuboidMapperTest.java
+++ b/job/src/test/java/com/kylinolap/job/hadoop/cube/MergeCuboidMapperTest.java
@@ -36,7 +36,6 @@ import com.kylinolap.common.util.LocalFileMetadataTestCase;
import com.kylinolap.cube.CubeInstance;
import com.kylinolap.cube.CubeManager;
import com.kylinolap.cube.CubeSegment;
-import com.kylinolap.cube.exception.CubeIntegrityException;
import com.kylinolap.dict.Dictionary;
import com.kylinolap.dict.DictionaryGenerator;
import com.kylinolap.dict.DictionaryInfo;
@@ -152,7 +151,7 @@ public class MergeCuboidMapperTest extends LocalFileMetadataTestCase {
}
@Test
- public void test() throws IOException, ParseException, CubeIntegrityException {
+ public void test() throws IOException, ParseException {
String cubeName = "test_kylin_cube_without_slr_left_join_ready_2_segments";
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6b996756/server/src/main/java/com/kylinolap/rest/controller/CubeController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/com/kylinolap/rest/controller/CubeController.java b/server/src/main/java/com/kylinolap/rest/controller/CubeController.java
index 5e44fa7..e6032aa 100644
--- a/server/src/main/java/com/kylinolap/rest/controller/CubeController.java
+++ b/server/src/main/java/com/kylinolap/rest/controller/CubeController.java
@@ -45,7 +45,6 @@ import com.fasterxml.jackson.databind.JsonMappingException;
import com.kylinolap.common.util.JsonUtil;
import com.kylinolap.cube.CubeInstance;
import com.kylinolap.cube.CubeSegment;
-import com.kylinolap.cube.exception.CubeIntegrityException;
import com.kylinolap.cube.model.CubeBuildTypeEnum;
import com.kylinolap.cube.model.CubeDesc;
import com.kylinolap.job.JobInstance;
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6b996756/server/src/main/java/com/kylinolap/rest/service/CubeService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/com/kylinolap/rest/service/CubeService.java b/server/src/main/java/com/kylinolap/rest/service/CubeService.java
index 3a911df..45987fa 100644
--- a/server/src/main/java/com/kylinolap/rest/service/CubeService.java
+++ b/server/src/main/java/com/kylinolap/rest/service/CubeService.java
@@ -48,7 +48,6 @@ import com.kylinolap.cube.CubeInstance;
import com.kylinolap.cube.CubeManager;
import com.kylinolap.cube.CubeSegment;
import com.kylinolap.cube.cuboid.CuboidCLI;
-import com.kylinolap.cube.exception.CubeIntegrityException;
import com.kylinolap.cube.model.CubeDesc;
import com.kylinolap.job.common.HadoopShellExecutable;
import com.kylinolap.job.cube.CubingJob;
@@ -131,7 +130,7 @@ public class CubeService extends BasicService {
}
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN)
- public CubeInstance updateCubeCost(String cubeName, int cost) throws IOException, CubeIntegrityException {
+ public CubeInstance updateCubeCost(String cubeName, int cost) throws IOException {
CubeInstance cube = getCubeManager().getCube(cubeName);
if (cube == null) {
throw new IOException("Cannot find cube " + cubeName);
@@ -243,13 +242,11 @@ public class CubeService extends BasicService {
return updatedCubeDesc;
} catch (IOException e) {
throw new InternalErrorException("Failed to deal with the request.", e);
- } catch (CubeIntegrityException e) {
- throw new InternalErrorException("Failed to deal with the request.", e);
}
}
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'MANAGEMENT')")
- public void deleteCube(CubeInstance cube) throws IOException, JobException, CubeIntegrityException {
+ public void deleteCube(CubeInstance cube) throws IOException, JobException {
final List<CubingJob> cubingJobs = listAllCubingJobs(cube.getName(), null, EnumSet.of(ExecutableState.READY, ExecutableState.RUNNING));
if (!cubingJobs.isEmpty()) {
throw new JobException("The cube " + cube.getName() + " has running job, please discard it and try again.");
@@ -309,7 +306,7 @@ public class CubeService extends BasicService {
*/
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')")
@Caching(evict = { @CacheEvict(value = QueryController.SUCCESS_QUERY_CACHE, allEntries = true), @CacheEvict(value = QueryController.EXCEPTION_QUERY_CACHE, allEntries = true) })
- public CubeInstance purgeCube(CubeInstance cube) throws IOException, CubeIntegrityException, JobException {
+ public CubeInstance purgeCube(CubeInstance cube) throws IOException, JobException {
String cubeName = cube.getName();
RealizationStatusEnum ostatus = cube.getStatus();
@@ -336,7 +333,7 @@ public class CubeService extends BasicService {
*/
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')")
@Caching(evict = { @CacheEvict(value = QueryController.SUCCESS_QUERY_CACHE, allEntries = true), @CacheEvict(value = QueryController.EXCEPTION_QUERY_CACHE, allEntries = true) })
- public CubeInstance disableCube(CubeInstance cube) throws IOException, CubeIntegrityException, JobException {
+ public CubeInstance disableCube(CubeInstance cube) throws IOException, JobException {
String cubeName = cube.getName();
RealizationStatusEnum ostatus = cube.getStatus();
@@ -363,7 +360,7 @@ public class CubeService extends BasicService {
* @throws JobException
*/
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')")
- public CubeInstance enableCube(CubeInstance cube) throws IOException, CubeIntegrityException, JobException {
+ public CubeInstance enableCube(CubeInstance cube) throws IOException, JobException {
String cubeName = cube.getName();
RealizationStatusEnum ostatus = cube.getStatus();
@@ -505,7 +502,7 @@ public class CubeService extends BasicService {
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#cube, 'ADMINISTRATION') or hasPermission(#cube, 'OPERATION') or hasPermission(#cube, 'MANAGEMENT')")
- public void updateCubeNotifyList(CubeInstance cube, List<String> notifyList) throws IOException, CubeIntegrityException {
+ public void updateCubeNotifyList(CubeInstance cube, List<String> notifyList) throws IOException {
CubeDesc desc = cube.getDescriptor();
desc.setNotifyList(notifyList);
getCubeDescManager().updateCubeDesc(desc);
@@ -527,7 +524,7 @@ public class CubeService extends BasicService {
* @throws JobException
* @throws CubeIntegrityException
*/
- private void releaseAllSegments(CubeInstance cube) throws IOException, JobException, CubeIntegrityException {
+ private void releaseAllSegments(CubeInstance cube) throws IOException, JobException {
final List<CubingJob> cubingJobs = listAllCubingJobs(cube.getName(), null);
for (CubingJob cubingJob : cubingJobs) {
final ExecutableState status = cubingJob.getStatus();
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/6b996756/server/src/main/java/com/kylinolap/rest/service/JobService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/com/kylinolap/rest/service/JobService.java b/server/src/main/java/com/kylinolap/rest/service/JobService.java
index 60583c7..4d3b52c 100644
--- a/server/src/main/java/com/kylinolap/rest/service/JobService.java
+++ b/server/src/main/java/com/kylinolap/rest/service/JobService.java
@@ -35,24 +35,22 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.kylinolap.cube.CubeInstance;
import com.kylinolap.cube.CubeSegment;
-import com.kylinolap.cube.exception.CubeIntegrityException;
import com.kylinolap.cube.model.CubeBuildTypeEnum;
import com.kylinolap.job.JobInstance;
-import com.kylinolap.job.constant.JobStatusEnum;
-import com.kylinolap.job.constant.JobStepStatusEnum;
-import com.kylinolap.job.engine.JobEngineConfig;
-import com.kylinolap.job.exception.JobException;
import com.kylinolap.job.common.HadoopShellExecutable;
import com.kylinolap.job.common.MapReduceExecutable;
import com.kylinolap.job.common.ShellExecutable;
+import com.kylinolap.job.constant.JobStatusEnum;
+import com.kylinolap.job.constant.JobStepStatusEnum;
import com.kylinolap.job.cube.CubingJob;
import com.kylinolap.job.cube.CubingJobBuilder;
+import com.kylinolap.job.engine.JobEngineConfig;
+import com.kylinolap.job.exception.JobException;
import com.kylinolap.job.execution.ExecutableState;
import com.kylinolap.job.execution.Output;
import com.kylinolap.job.impl.threadpool.AbstractExecutable;
import com.kylinolap.metadata.model.SegmentStatusEnum;
import com.kylinolap.rest.constant.Constant;
-import com.kylinolap.rest.exception.InternalErrorException;
/**
* @author ysong1
@@ -131,25 +129,21 @@ public class JobService extends BasicService {
}
}
- try {
- CubingJob job;
- CubingJobBuilder builder = (CubingJobBuilder) CubingJobBuilder.newBuilder().setJobEnginConfig(new JobEngineConfig(getConfig())).setSubmitter(submitter);
- if (buildType == CubeBuildTypeEnum.BUILD) {
- CubeSegment newSeg = getCubeManager().appendSegments(cube, startDate, endDate);
- builder.setSegment(newSeg);
- job = builder.buildJob();
- } else if (buildType == CubeBuildTypeEnum.MERGE) {
- CubeSegment newSeg = getCubeManager().mergeSegments(cube, startDate, endDate);
- builder.setSegment(newSeg);
- job = builder.mergeJob();
- } else {
- throw new JobException("invalid build type:" + buildType);
- }
- getExecutableManager().addJob(job);
- return parseToJobInstance(job);
- } catch (CubeIntegrityException e) {
- throw new InternalErrorException(e.getLocalizedMessage(), e);
+ CubingJob job;
+ CubingJobBuilder builder = (CubingJobBuilder) CubingJobBuilder.newBuilder().setJobEnginConfig(new JobEngineConfig(getConfig())).setSubmitter(submitter);
+ if (buildType == CubeBuildTypeEnum.BUILD) {
+ CubeSegment newSeg = getCubeManager().appendSegments(cube, startDate, endDate);
+ builder.setSegment(newSeg);
+ job = builder.buildJob();
+ } else if (buildType == CubeBuildTypeEnum.MERGE) {
+ CubeSegment newSeg = getCubeManager().mergeSegments(cube, startDate, endDate);
+ builder.setSegment(newSeg);
+ job = builder.mergeJob();
+ } else {
+ throw new JobException("invalid build type:" + buildType);
}
+ getExecutableManager().addJob(job);
+ return parseToJobInstance(job);
}
public JobInstance getJobInstance(String uuid) throws IOException, JobException {
@@ -248,7 +242,7 @@ public class JobService extends BasicService {
}
@PreAuthorize(Constant.ACCESS_HAS_ROLE_ADMIN + " or hasPermission(#job, 'ADMINISTRATION') or hasPermission(#job, 'OPERATION') or hasPermission(#job, 'MANAGEMENT')")
- public JobInstance cancelJob(String jobId) throws IOException, JobException, CubeIntegrityException {
+ public JobInstance cancelJob(String jobId) throws IOException, JobException {
// CubeInstance cube = this.getCubeManager().getCube(job.getRelatedCube());
// for (BuildCubeJob cubeJob: listAllCubingJobs(cube.getName(), null, EnumSet.of(ExecutableState.READY, ExecutableState.RUNNING))) {
// getExecutableManager().stopJob(cubeJob.getId());