Skip to content

[Bug] [JobConfig] Throw NullPointerException When Env config contains null value #8893

@plaofchina

Description

@plaofchina

Search before asking

  • I had searched in the issues and found no similar issues.

What happened

I created a job with Hocon config and there is a null value in Env, then I get the job info through Restapi /job-info/{jobId}. the result got is { "status": "fail", "message": null } and Seatunnel print Exception logs like [] 2025-03-04 15:48:29,226 ERROR org.apache.seatunnel.engine.server.rest.filter.ExceptionHandlingFilter - Error occurred while processing request java.lang.NullPointerException: null at com.hazelcast.internal.util.JsonUtil.toJsonObject(JsonUtil.java:308) ~[seatunnel-hazelcast-shade-2.3.10-SNAPSHOT.jar:2.3.10-SNAPSHOT] at org.apache.seatunnel.engine.server.rest.service.BaseService.convertToJson(BaseService.java:181) ~[classes/:?] at org.apache.seatunnel.engine.server.rest.service.JobInfoService.getJobInfoJson(JobInfoService.java:66) ~[classes/:?] at org.apache.seatunnel.engine.server.rest.servlet.JobInfoServlet.doGet(JobInfoServlet.java:52) ~[classes/:?] at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) ~[javax.servlet-api-3.1.0.jar:3.1.0] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]

SeaTunnel Version

2.3.9

SeaTunnel Config

env {
  id=16838005946560
  name=wqz-kafka
  description="测试kafka streaming模式报错"
  engine=SeaTunnel
  cron=null
  jobMode=STREAMING
  "job.name"=wqz-kafka
  "job.mode"=STREAMING
}
source {
  Kafka {

    "plugin_output"=Table16838010490304
    "dag-parsing.mode"=MULTIPLEX
    topic="tyx_test01"
//    topic="wqz-001-topic"
    format_error_handle_way=fail
    commit_on_checkpoint=false
    schema {
      fields {
        name=string
      }
    }
    format=json
    "kafka.config" {
      "max.pool.recodes"=500
    }
    "bootstrap.servers"="10.*.*.*:9092"
  }
}
transform {
}
sink {
  Console {
    "plugin_input"=Table16838010490304
    "log.print.data"=true
  }
}

Running Command

ClientConfig clientConfig = ConfigProvider.locateAndGetClientConfig();
        clientConfig.setClusterName(clientConfig.getClusterName());
        SeaTunnelClient seaTunnelClient = new SeaTunnelClient(clientConfig);
        SeaTunnelConfig seaTunnelConfig = new YamlSeaTunnelConfigBuilder().build();
        String filePath = "/test/kafka-streaming.conf";
        JobConfig jobConfig = new JobConfig();
        JobContext jobContext = new JobContext();
        jobConfig.setJobContext(jobContext);
        ClientJobExecutionEnvironment jobExecutionEnv =
                seaTunnelClient.createExecutionContext(filePath, null, jobConfig, seaTunnelConfig, 1234568L);
        final ClientJobProxy clientJobProxy = jobExecutionEnv.execute();
        long jobId = clientJobProxy.getJobId();

        System.out.println("jobId:" + jobId);
        JobResult jobResultCache = clientJobProxy.getJobResultCache();
        System.out.println("jobResultCache:" + jobResultCache);
        String runningJobMetrics = seaTunnelClient.getJobClient().getRunningJobMetrics();
        System.out.println( "runningJobMetrics:" + runningJobMetrics);

        seaTunnelClient.close();
        System.out.println("close:" + jobId);

Error Exception

2025-03-04 15:48:29,226 ERROR org.apache.seatunnel.engine.server.rest.filter.ExceptionHandlingFilter - Error occurred while processing request
java.lang.NullPointerException: null
	at com.hazelcast.internal.util.JsonUtil.toJsonObject(JsonUtil.java:308) ~[seatunnel-hazelcast-shade-2.3.10-SNAPSHOT.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.engine.server.rest.service.BaseService.convertToJson(BaseService.java:181) ~[classes/:?]
	at org.apache.seatunnel.engine.server.rest.service.JobInfoService.getJobInfoJson(JobInfoService.java:66) ~[classes/:?]
	at org.apache.seatunnel.engine.server.rest.servlet.JobInfoServlet.doGet(JobInfoServlet.java:52) ~[classes/:?]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) ~[javax.servlet-api-3.1.0.jar:3.1.0]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar:3.1.0]
	at org.apache.seatunnel.shade.org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.engine.server.rest.filter.ExceptionHandlingFilter.doFilter(ExceptionHandlingFilter.java:50) ~[classes/:?]
	at org.apache.seatunnel.shade.org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.Server.handle(Server.java:516) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:137) ~[seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) [seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at org.apache.seatunnel.shade.org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) [seatunnel-jetty9-9.4.56.jar:2.3.10-SNAPSHOT]
	at java.lang.Thread.run(Thread.java:829) [?:?]

Zeta or Flink or Spark Version

No response

Java or Scala Version

No response

Screenshots

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

  • I agree to follow this project's Code of Conduct

Activity

github-actions

github-actions commented on Apr 4, 2025

@github-actions
github-actions

github-actions commented on Apr 15, 2025

@github-actions
davidzollo

davidzollo commented on May 12, 2025

@davidzollo
Contributor

@plaofchina is there some progress of the PR?

github-actions

github-actions commented on Jul 12, 2025

@github-actions

This issue has been automatically marked as stale because it has not had recent activity for 30 days. It will be closed in next 7 days if no further activity occurs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Doing

    Milestone

    No milestone

    Relationships

    None yet

      Development

      Participants

      @davidzollo@Hisoka-X@plaofchina

      Issue actions

        [Bug] [JobConfig] Throw NullPointerException When Env config contains null value · Issue #8893 · apache/seatunnel