[ 
https://issues.apache.org/jira/browse/DRILL-4117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15750235#comment-15750235
 ] 

Lee Butts commented on DRILL-4117:
----------------------------------

We're trying to upgrade to 1.9.0 and hitting the following NPE due to this 
issue (setHadWildcard called on null FileSelection):

{code}
Caused by: java.lang.NullPointerException: null
        at 
org.apache.drill.exec.store.dfs.FileSelection.create(FileSelection.java:291)
        at 
org.apache.drill.exec.store.dfs.WorkspaceSchemaFactory$WorkspaceSchema.create(WorkspaceSchemaFactory.java:571)
        at 
org.apache.drill.exec.store.dfs.WorkspaceSchemaFactory$WorkspaceSchema.create(WorkspaceSchemaFactory.java:372)
        at 
org.apache.drill.exec.planner.sql.ExpandingConcurrentMap.getNewEntry(ExpandingConcurrentMap.java:96)
        at 
org.apache.drill.exec.planner.sql.ExpandingConcurrentMap.get(ExpandingConcurrentMap.java:90)
        at 
org.apache.drill.exec.store.dfs.WorkspaceSchemaFactory$WorkspaceSchema.getTable(WorkspaceSchemaFactory.java:526)
        at 
org.apache.calcite.jdbc.SimpleCalciteSchema.getTable(SimpleCalciteSchema.java:82)
        at 
org.apache.calcite.prepare.CalciteCatalogReader.getTableFrom(CalciteCatalogReader.java:119)
        at 
org.apache.calcite.prepare.CalciteCatalogReader.getTable(CalciteCatalogReader.java:102)
        at 
org.apache.calcite.prepare.CalciteCatalogReader.getTable(CalciteCatalogReader.java:73)
        at 
org.apache.calcite.sql.validate.EmptyScope.getTableNamespace(EmptyScope.java:75)
        at 
org.apache.calcite.sql.validate.DelegatingScope.getTableNamespace(DelegatingScope.java:124)
        at 
org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:104)
        at 
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:86)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:883)
        at 
org.apache.calcite.sql.validate.AbstractNamespace.getRowType(AbstractNamespace.java:124)
        at 
org.apache.calcite.sql.validate.IdentifierNamespace.getRowType(IdentifierNamespace.java:45)
        at 
org.apache.calcite.sql.validate.ListScope.findQualifyingTableName(ListScope.java:142)
        at 
org.apache.calcite.sql.validate.DelegatingScope.fullyQualify(DelegatingScope.java:154)
        at 
org.apache.calcite.sql.validate.SqlValidatorUtil$ExpansionAndDeepCopier.visit(SqlValidatorUtil.java:821)
        at 
org.apache.calcite.sql.validate.SqlValidatorUtil$ExpansionAndDeepCopier.visit(SqlValidatorUtil.java:799)
        at org.apache.calcite.sql.SqlIdentifier.accept(SqlIdentifier.java:274)
        at 
org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.visitChild(SqlShuttle.java:134)
        at 
org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.visitChild(SqlShuttle.java:101)
        at org.apache.calcite.sql.SqlOperator.acceptCall(SqlOperator.java:831)
        at 
org.apache.calcite.sql.validate.SqlValidatorUtil$DeepCopier.visitScoped(SqlValidatorUtil.java:866)
        at 
org.apache.calcite.sql.validate.SqlScopedShuttle.visit(SqlScopedShuttle.java:50)
        at 
org.apache.calcite.sql.validate.SqlScopedShuttle.visit(SqlScopedShuttle.java:32)
        at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:130)
        at 
org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.visitChild(SqlShuttle.java:134)
        at 
org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.visitChild(SqlShuttle.java:101)
        at org.apache.calcite.sql.SqlOperator.acceptCall(SqlOperator.java:831)
        at 
org.apache.calcite.sql.validate.SqlValidatorUtil$DeepCopier.visitScoped(SqlValidatorUtil.java:866)
        at 
org.apache.calcite.sql.validate.SqlScopedShuttle.visit(SqlScopedShuttle.java:50)
        at 
org.apache.calcite.sql.validate.SqlScopedShuttle.visit(SqlScopedShuttle.java:32)
        at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:130)
        at 
org.apache.calcite.sql.validate.SqlValidatorUtil$DeepCopier.visit(SqlValidatorUtil.java:856)
        at 
org.apache.calcite.sql.validate.SqlValidatorUtil$DeepCopier.visit(SqlValidatorUtil.java:843)
        at org.apache.calcite.sql.SqlNodeList.accept(SqlNodeList.java:152)
        at 
org.apache.calcite.sql.validate.SqlValidatorUtil$ExpansionAndDeepCopier.copy(SqlValidatorUtil.java:806)
        at 
org.apache.calcite.sql.validate.AggregatingSelectScope.<init>(AggregatingSelectScope.java:92)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.registerQuery(SqlValidatorImpl.java:2206)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.registerQuery(SqlValidatorImpl.java:2128)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:841)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:557)
        at 
org.apache.drill.exec.planner.sql.SqlConverter.validate(SqlConverter.java:164)

{code}

> Ensure proper null outcome handling during FileSelection creation and its 
> subclasses.
> -------------------------------------------------------------------------------------
>
>                 Key: DRILL-4117
>                 URL: https://issues.apache.org/jira/browse/DRILL-4117
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Hanifi Gunes
>            Assignee: Hanifi Gunes
>
> Hakim identified the following does not make a null check upon the result of  
> FileSelection.create(...). This issue is to ensure proper null outcome 
> handling during FileSelection creation and its subclasses or to return a 
> non-null default type.
> {quote}
> onFileSystemPartitionDescriptor.createNewGroupScan() passes the output to 
> FileGroupScan.close() which expects it to be not null
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to