shizhengchao opened a new issue #7931: a problem with druid jdbc support
URL: https://github.com/apache/incubator-druid/issues/7931
 
 
   when i use `Avatica JDBC driver` connected to `druid router`,i got an error:
   ```
   org.apache.druid.java.util.common.IAE: Received an Avatica request without a 
connectionId.
   ```
   The following is a detailed description:
   ### Affected Version
   
   0.14
   
   ### Description
   when i use `Avatica JDBC driver` connected to `druid router`,when 
`avatica-remote` send `execute` request to `druid router`, an error happend , i 
found the `connectionId` is under the key `statementHandle`  like this: 
   ```json
   
{"request":"execute","statementHandle":{"connectionId":"b1511e18-c6b8-4c79-a166-977c204511ef","id":1,"signature":{"columns":[{"ordinal":0,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":0,"signed":true,"displaySize":3,"label":"__time","columnName":"__time","schemaName":null,"precision":3,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":93,"name":"TIMESTAMP","rep":"NUMBER"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.sql.Timestamp"},{"ordinal":1,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":0,"signed":true,"displaySize":19,"label":"added","columnName":"added","schemaName":null,"precision":19,"scale":0,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":-5,"name":"BIGINT","rep":"NUMBER"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.Long"},{"ordinal":2,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"channel","columnName":"channel","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":3,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"cityName","columnName":"cityName","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":4,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"comment","columnName":"comment","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":5,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"countryIsoCode","columnName":"countryIsoCode","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":6,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"countryName","columnName":"countryName","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":7,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":0,"signed":true,"displaySize":19,"label":"deleted","columnName":"deleted","schemaName":null,"precision":19,"scale":0,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":-5,"name":"BIGINT","rep":"NUMBER"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.Long"},{"ordinal":8,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":0,"signed":true,"displaySize":19,"label":"delta","columnName":"delta","schemaName":null,"precision":19,"scale":0,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":-5,"name":"BIGINT","rep":"NUMBER"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.Long"},{"ordinal":9,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"isAnonymous","columnName":"isAnonymous","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":10,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"isMinor","columnName":"isMinor","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":11,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"isNew","columnName":"isNew","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":12,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"isRobot","columnName":"isRobot","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":13,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"isUnpatrolled","columnName":"isUnpatrolled","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":14,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"metroCode","columnName":"metroCode","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":15,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"namespace","columnName":"namespace","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":16,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"page","columnName":"page","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":17,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"regionIsoCode","columnName":"regionIsoCode","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":18,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"regionName","columnName":"regionName","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"},{"ordinal":19,"autoIncrement":false,"caseSensitive":true,"searchable":false,"currency":false,"nullable":1,"signed":true,"displaySize":-1,"label":"user","columnName":"user","schemaName":null,"precision":-1,"scale":-2147483648,"tableName":null,"catalogName":null,"type":{"type":"scalar","id":12,"name":"VARCHAR","rep":"STRING"},"readOnly":true,"writable":false,"definitelyWritable":false,"columnClassName":"java.lang.String"}],"sql":"select
 * from wikipedia where comment = 'added 
project'","parameters":[],"cursorFactory":{"style":"ARRAY","clazz":null,"fieldNames":null},"statementType":"SELECT"}},"parameterValues":[],"maxRowCount":100}
   ```
   so, an error occured in 
`org.apache.druid.server.AsyncQueryForwardingServlet#service`:
   ```java
   if (isAvatica) {
        .....
        String connectionId = getAvaticaConnectionId(requestMap);
         ......
   }
   private static String getAvaticaConnectionId(Map<String, Object> requestMap)
     {
      // There should be an error here, because the connectionId is in 
`statementHandle`
       Object connectionIdObj = requestMap.get("connectionId");
       if (connectionIdObj == null) {
         throw new IAE("Received an Avatica request without a connectionId.");
       }
       if (!(connectionIdObj instanceof String)) {
         throw new IAE("Received an Avatica request with a non-String 
connectionId.");
       }
   
       return (String) connectionIdObj;
     }
   ```
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to