This is an automated email from the ASF dual-hosted git repository.

gabriellee pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new d1e9f7ef105 [fix](schema scan) Fix NPE for schema scan (#59389)
d1e9f7ef105 is described below

commit d1e9f7ef1055523c8d9aaa3caf05e1eaf334625d
Author: Gabriel <[email protected]>
AuthorDate: Fri Dec 26 17:14:13 2025 +0800

    [fix](schema scan) Fix NPE for schema scan (#59389)
    
    Introduced by #55334
    
    java.lang.reflect.InvocationTargetException: null
    at jdk.internal.reflect.GeneratedMethodAccessor90.invoke(Unknown Source)
    ~[?:?]
    at
    
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    ~[?:?]
            at java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
    at org.apache.doris.service.FeServer.lambda$start$0(FeServer.java:60)
    ~[doris-fe.jar:1.2-SNAPSHOT]
            at jdk.proxy2.$Proxy47.describeTables(Unknown Source) ~[?:?]
    at
    
org.apache.doris.thrift.FrontendService$Processor$describeTables.getResult(FrontendService.java:4122)
    ~[fe-common-1.2-SNAPSHOT.jar:1.2-SNAPSHOT]
    at
    
org.apache.doris.thrift.FrontendService$Processor$describeTables.getResult(FrontendService.java:4102)
    ~[fe-common-1.2-SNAPSHOT.jar:1.2-SNAPSHOT]
    at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
    ~[libthrift-0.16.0.jar:0.16.0]
    at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
    ~[libthrift-0.16.0.jar:0.16.0]
    at
    
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:250)
    ~[libthrift-0.16.0.jar:0.16.0]
    at
    
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    ~[?:?]
    at
    
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    ~[?:?]
            at java.lang.Thread.run(Thread.java:840) ~[?:?]
    Caused by: java.lang.NullPointerException: Cannot invoke
    "org.apache.doris.catalog.TableIf.isTemporary()" because "table" is null
    at
    
org.apache.doris.service.FrontendServiceImpl.describeTables(FrontendServiceImpl.java:971)
    ~[doris-fe.jar:1.2-SNAPSHOT]
            ... 13 more
    2025-12-25 20:00:07,417 ERROR (thrift-server-pool-5530|154)
    [ProcessFunction.process():47] Internal error processing describeTables
    java.lang.reflect.UndeclaredThrowableException: null
            at jdk.proxy2.$Proxy47.describeTables(Unknown Source) ~[?:?]
    at
    
org.apache.doris.thrift.FrontendService$Processor$describeTables.getResult(FrontendService.java:4122)
    ~[fe-common-1.2-SNAPSHOT.jar:1.2-SNAPSHOT]
    at
    
org.apache.doris.thrift.FrontendService$Processor$describeTables.getResult(FrontendService.java:4102)
    ~[fe-common-1.2-SNAPSHOT.jar:1.2-SNAPSHOT]
    at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
    ~[libthrift-0.16.0.jar:0.16.0]
    at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
    ~[libthrift-0.16.0.jar:0.16.0]
    at
    
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:250)
    ~[libthrift-0.16.0.jar:0.16.0]
    at
    
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    ~[?:?]
    at
    
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    ~[?:?]
            at java.lang.Thread.run(Thread.java:840) ~[?:?]
    Caused by: java.lang.reflect.InvocationTargetException
    at jdk.internal.reflect.GeneratedMethodAccessor90.invoke(Unknown Source)
    ~[?:?]
    at
    
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    ~[?:?]
            at java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
    at org.apache.doris.service.FeServer.lambda$start$0(FeServer.java:60)
    ~[doris-fe.jar:1.2-SNAPSHOT]
            ... 9 more
    Caused by: java.lang.NullPointerException: Cannot invoke
    "org.apache.doris.catalog.TableIf.isTemporary()" because "table" is null
    at
    
org.apache.doris.service.FrontendServiceImpl.describeTables(FrontendServiceImpl.java:971)
    ~[doris-fe.jar:1.2-SNAPSHOT]
    at jdk.internal.reflect.GeneratedMethodAccessor90.invoke(Unknown Source)
    ~[?:?]
    at
    
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    ~[?:?]
            at java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
    at org.apache.doris.service.FeServer.lambda$start$0(FeServer.java:60)
    ~[doris-fe.jar:1.2-SNAPSHOT]
            ... 9 more
---
 .../java/org/apache/doris/service/FrontendServiceImpl.java   | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java 
b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
index 972c09a757d..3a1f56c7672 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
@@ -895,13 +895,13 @@ public class FrontendServiceImpl implements 
FrontendService.Iface {
         if (db != null) {
             for (String tableName : tables) {
                 TableIf table = db.getTableNullableIfException(tableName);
-                if (table.isTemporary()) {
-                    // because we return all table names to be,
-                    // so when we skip temporary table, we should add a offset 
here
-                    tablesOffset.add(columns.size());
-                    continue;
-                }
                 if (table != null) {
+                    if (table.isTemporary()) {
+                        // because we return all table names to be,
+                        // so when we skip temporary table, we should add a 
offset here
+                        tablesOffset.add(columns.size());
+                        continue;
+                    }
                     table.readLock();
                     try {
                         List<Column> baseSchema = table.getBaseSchemaOrEmpty();


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

Reply via email to