[ 
https://issues.apache.org/jira/browse/DRILL-5456?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Khurram Faraaz updated DRILL-5456:
----------------------------------
    Summary: convert JSON array to UTF-8 results in 
StringIndexOutOfBoundsException  (was: StringIndexOutOfBoundsException when 
converting a JSON array to UTF-8)

> convert JSON array to UTF-8 results in StringIndexOutOfBoundsException
> ----------------------------------------------------------------------
>
>                 Key: DRILL-5456
>                 URL: https://issues.apache.org/jira/browse/DRILL-5456
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Flow
>    Affects Versions: 1.11.0
>            Reporter: Khurram Faraaz
>
> Convert a JSON array to UTF-8 using CONVERT_TO function results in 
> StringIndexOutOfBoundsException
> Apache Drill 1.11.0 commit ID: 3e8b01d
> Data used in test
> {noformat}
> [root@centos-01 ~]# cat rptd_count.json
> {"arr":[0,1,2,3,4,5,6,7,8,9,10],"id":1}
> {"arr":[0,1,2,3,4,5,6,7,8,9,10],"id":2}
> {"arr":[0,1,2,3,4,5,6,7,8,9,10],"id":3}
> {"arr":[0,1,2,3,4,5,6,7,8,9,10],"id":4}
> {"arr":[0,1,2,3,4,5,6,7,8,9,10],"id":5}
> {"arr":[0,1,2,3,4,5,6,7,8,9,10],"id":6}
> {"arr":[0,1,2,3,4,5,6,7,8,9,10],"id":7}
> {"arr":[0,1,2,3,4,5,6,7,8,9,10],"id":8}
> {"arr":[0,1,2,3,4,5,6,7,8,9,10],"id":9}
> {"arr":[0,1,2,3,4,5,6,7,8,9,10],"id":10}
> [root@centos-01 ~]#
> {noformat}
> {noformat}
> 0: jdbc:drill:schema=dfs.tmp> select convert_to(t.arr,'UTF-8') c, id from 
> `rptd_count.json` t;
> Error: SYSTEM ERROR: StringIndexOutOfBoundsException: String index out of 
> range: -3
> [Error Id: 056a13c0-6c9f-403e-877e-040e907d6581 on centos-01.qa.lab:31010] 
> (state=,code=0)
> 0: jdbc:drill:schema=dfs.tmp>
> {noformat}
> Data from the JSON file
> {noformat}
> 0: jdbc:drill:schema=dfs.tmp> select * from `rptd_count.json`;
> +---------------------------+-----+
> |            arr            | id  |
> +---------------------------+-----+
> | [0,1,2,3,4,5,6,7,8,9,10]  | 1   |
> | [0,1,2,3,4,5,6,7,8,9,10]  | 2   |
> | [0,1,2,3,4,5,6,7,8,9,10]  | 3   |
> | [0,1,2,3,4,5,6,7,8,9,10]  | 4   |
> | [0,1,2,3,4,5,6,7,8,9,10]  | 5   |
> | [0,1,2,3,4,5,6,7,8,9,10]  | 6   |
> | [0,1,2,3,4,5,6,7,8,9,10]  | 7   |
> | [0,1,2,3,4,5,6,7,8,9,10]  | 8   |
> | [0,1,2,3,4,5,6,7,8,9,10]  | 9   |
> | [0,1,2,3,4,5,6,7,8,9,10]  | 10  |
> +---------------------------+-----+
> 10 rows selected (0.224 seconds)
> {noformat}
> Stack trace from drillbit.log
> {noformat}
> 2017-05-01 19:32:34,209 [26f872ad-62a3-d7a7-aec1-9c7d937a2416:foreman] INFO  
> o.a.drill.exec.work.foreman.Foreman - Query text for query id 
> 26f872ad-62a3-d7a7-aec1-9c7d937a2416: select convert_to(t.arr,'UTF-8') c, id 
> from `rptd_count.json` t
> ...
> 2017-05-01 19:32:34,328 [26f872ad-62a3-d7a7-aec1-9c7d937a2416:foreman] ERROR 
> o.a.drill.exec.work.foreman.Foreman - SYSTEM ERROR: 
> StringIndexOutOfBoundsException: String index out of range: -3
> [Error Id: 056a13c0-6c9f-403e-877e-040e907d6581 on centos-01.qa.lab:31010]
> org.apache.drill.common.exceptions.UserException: SYSTEM ERROR: 
> StringIndexOutOfBoundsException: String index out of range: -3
> [Error Id: 056a13c0-6c9f-403e-877e-040e907d6581 on centos-01.qa.lab:31010]
>         at 
> org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:544)
>  ~[drill-common-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.work.foreman.Foreman$ForemanResult.close(Foreman.java:847)
>  [drill-java-exec-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.work.foreman.Foreman.moveToState(Foreman.java:977) 
> [drill-java-exec-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:297) 
> [drill-java-exec-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  [na:1.8.0_91]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  [na:1.8.0_91]
>         at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91]
> Caused by: org.apache.drill.exec.work.foreman.ForemanException: Unexpected 
> exception during fragment initialization: String index out of range: -3
>         ... 4 common frames omitted
> Caused by: java.lang.StringIndexOutOfBoundsException: String index out of 
> range: -3
>         at java.lang.String.substring(String.java:1931) ~[na:1.8.0_91]
>         at 
> org.apache.drill.exec.planner.logical.PreProcessLogicalRel.getConvertFunctionException(PreProcessLogicalRel.java:244)
>  ~[drill-java-exec-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.logical.PreProcessLogicalRel.visit(PreProcessLogicalRel.java:148)
>  ~[drill-java-exec-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         at 
> org.apache.calcite.rel.logical.LogicalProject.accept(LogicalProject.java:129) 
> ~[calcite-core-1.4.0-drill-r21.jar:1.4.0-drill-r21]
>         at 
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.preprocessNode(DefaultSqlHandler.java:641)
>  ~[drill-java-exec-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateAndConvert(DefaultSqlHandler.java:196)
>  ~[drill-java-exec-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:164)
>  ~[drill-java-exec-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getQueryPlan(DrillSqlWorker.java:131)
>  ~[drill-java-exec-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:79)
>  ~[drill-java-exec-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:1050) 
> [drill-java-exec-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:280) 
> [drill-java-exec-1.11.0-SNAPSHOT.jar:1.11.0-SNAPSHOT]
>         ... 3 common frames omitted
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to