Repository: kylin Updated Branches: refs/heads/2.1.x c962feb75 -> f52190b12
minor, fix get model NPE when getting cube list. Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/6d936d34 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/6d936d34 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/6d936d34 Branch: refs/heads/2.1.x Commit: 6d936d34935b13211cb485a1a35f1d4803288a34 Parents: 91c08e8 Author: Jiatao Tao <245915...@qq.com> Authored: Wed Aug 2 04:27:07 2017 -0500 Committer: GitHub <nore...@github.com> Committed: Wed Aug 2 04:27:07 2017 -0500 ---------------------------------------------------------------------- .../rest/controller2/CubeControllerV2.java | 24 ++++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/6d936d34/server-base/src/main/java/org/apache/kylin/rest/controller2/CubeControllerV2.java ---------------------------------------------------------------------- diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller2/CubeControllerV2.java b/server-base/src/main/java/org/apache/kylin/rest/controller2/CubeControllerV2.java index 9ffc062..cdc09b9 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/controller2/CubeControllerV2.java +++ b/server-base/src/main/java/org/apache/kylin/rest/controller2/CubeControllerV2.java @@ -109,7 +109,11 @@ public class CubeControllerV2 extends BasicController { // official cubes for (CubeInstance cube : cubes) { - response.add(createCubeInstanceResponse(cube)); + try { + response.add(createCubeInstanceResponse(cube)); + } catch (Exception e) { + logger.error("Error creating cube instance response, skipping.", e); + } } // draft cubes @@ -174,9 +178,14 @@ public class CubeControllerV2 extends BasicController { r.setModel(cube.getDescriptor().getModelName()); r.setPartitionDateStart(cube.getDescriptor().getPartitionDateStart()); - r.setPartitionDateColumn(cube.getModel().getPartitionDesc().getPartitionDateColumn()); - r.setIs_streaming( - cube.getModel().getRootFactTable().getTableDesc().getSourceType() == ISourceAware.ID_STREAMING); + // cuz model doesn't have a state the label a model is broken, + // so in some case the model can not be loaded due to some check failed, + // but the cube in this model can still be loaded. + if (cube.getModel() != null) { + r.setPartitionDateColumn(cube.getModel().getPartitionDesc().getPartitionDateColumn()); + r.setIs_streaming( + cube.getModel().getRootFactTable().getTableDesc().getSourceType() == ISourceAware.ID_STREAMING); + } r.setProject(projectService.getProjectOfCube(cube.getName())); return r; @@ -202,7 +211,12 @@ public class CubeControllerV2 extends BasicController { throw new BadRequestException(String.format(msg.getCUBE_NOT_FOUND(), cubeName)); } - CubeInstanceResponse r = createCubeInstanceResponse(cube); + CubeInstanceResponse r; + try { + r = createCubeInstanceResponse(cube); + } catch (Exception e) { + throw new BadRequestException("Error getting cube instance response.", ResponseCode.CODE_UNDEFINED, e); + } return new EnvelopeResponse(ResponseCode.CODE_SUCCESS, r, ""); }