You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "liyang (JIRA)" <ji...@apache.org> on 2017/12/03 05:13:00 UTC
[jira] [Commented] (KYLIN-3060) The logical processing of creating
or updating streaming table has a bug in server, which will cause a
NullPointerException.
[ https://issues.apache.org/jira/browse/KYLIN-3060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16275826#comment-16275826 ]
liyang commented on KYLIN-3060:
-------------------------------
Code merged. Thanks Jianhua!
https://github.com/apache/kylin/commit/e53257d1fad0edc43cc625b4e3bc63723e403f4e
Please note the code format in the future. I made a follow up commit to format the code.
https://github.com/apache/kylin/commit/c5d1fd07f5cb16978b1cc626edf556c0a2be4dcf
> The logical processing of creating or updating streaming table has a bug in server, which will cause a NullPointerException.
> ----------------------------------------------------------------------------------------------------------------------------
>
> Key: KYLIN-3060
> URL: https://issues.apache.org/jira/browse/KYLIN-3060
> Project: Kylin
> Issue Type: Bug
> Components: streaming
> Reporter: peng.jianhua
> Assignee: peng.jianhua
> Labels: patch
> Attachments: 0001-KYLIN-3060-The-logical-processing-of-creating-or-upd.patch, after_repaired.png, create_non_interger_ID.png, edit_non_interger_ID.png
>
>
> When you set the invalid parameter for creating or updating a streaming table, the client will show an error message dialog, refer to [^create_non_interger_ID.png] and [^edit_non_interger_ID.png].
> I analyze the Kylin server log, there are some null pointer exceptions, then I analyze the StreamingController.java, whose logical processing of streaming table has a bug, which will cause a NullPointerException.
> eg. When the streamingRequest.getKafkaConfig() has a invalid pamamter, the kafkaConfig will be null, then "if (desc.getUuid() == null || desc.getName() == null) " in function "org.apache.kylin.source.kafka.KafkaConfigManager.updateKafkaConfig" will cause the NullPointerException.
> {code:java}
> public StreamingRequest updateStreamingConfig(@RequestBody StreamingRequest streamingRequest) throws JsonProcessingException {
> ......
> KafkaConfig kafkaConfig = deserializeKafkaSchemalDesc(streamingRequest);
> ......
> kafkaConfig = kafkaConfigService.updateKafkaConfig(kafkaConfig, project);
> ......
> }
> private KafkaConfig deserializeKafkaSchemalDesc(StreamingRequest streamingRequest) {
> KafkaConfig desc = null;
> try {
> logger.debug("Saving KafkaConfig " + streamingRequest.getKafkaConfig());
> desc = JsonUtil.readValue(streamingRequest.getKafkaConfig(), KafkaConfig.class);
> } catch (JsonParseException e) {
> logger.error("The KafkaConfig definition is invalid.", e);
> updateRequest(streamingRequest, false, e.getMessage());
> } catch (JsonMappingException e) {
> logger.error("The data KafkaConfig definition is invalid.", e);
> updateRequest(streamingRequest, false, e.getMessage());
> } catch (IOException e) {
> logger.error("Failed to deal with the request.", e);
> throw new InternalErrorException("Failed to deal with the request:" + e.getMessage(), e);
> }
> return desc;
> }
> public StreamingConfig updateStreamingConfig(StreamingConfig config, String project) throws IOException {
> aclEvaluate.checkProjectAdminPermission(project);
> return getStreamingManager().updateStreamingConfig(config);
> }
> public StreamingConfig updateStreamingConfig(StreamingConfig desc) throws IOException {
> // Validate CubeDesc
> if (desc.getUuid() == null || desc.getName() == null) {
> ......
> }
> {code}
> So I have repaired it, then the client will tell you the detail error message( refer to [^after_repaired.png]), the server no longer throws an null point exception.
> you can check the patch, thanks!
> {panel:title=Kylin server log}
> 2017-11-24 18:38:00,702 ERROR [http-bio-7070-exec-14] controller.StreamingController:202 : Failed to deal with the request:null
> {color:red}java.lang.NullPointerException{color}
> at org.apache.kylin.source.kafka.KafkaConfigManager.updateKafkaConfig(KafkaConfigManager.java:156)
> at org.apache.kylin.rest.service.KafkaConfigService.updateKafkaConfig(KafkaConfigService.java:84)
> {color:red}at org.apache.kylin.rest.controller.StreamingController.updateStreamingConfig(StreamingController.java:198){color}
> {panel}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)