You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eventmesh.apache.org by mi...@apache.org on 2022/10/27 02:49:09 UTC
[incubator-eventmesh] branch master updated: [Enhancement] Possible null pointer dereference due to return value of called method [cloudevents SyncRequest] #1948
This is an automated email from the ASF dual-hosted git repository.
mikexue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-eventmesh.git
The following commit(s) were added to refs/heads/master by this push:
new c0e1d6b1 [Enhancement] Possible null pointer dereference due to return value of called method [cloudevents SyncRequest] #1948
new 8a6cf63b Merge pull request #1949 from starmoon1994/fix_patch_issues1948
c0e1d6b1 is described below
commit c0e1d6b1c33500f954924b74eef48a60c167a33a
Author: starmoon1994 <62...@qq.com>
AuthorDate: Thu Oct 27 09:50:14 2022 +0800
[Enhancement] Possible null pointer dereference due to return value of called method [cloudevents SyncRequest] #1948
---
.../tcp/demo/pub/cloudevents/SyncRequest.java | 45 ++++++++++++++--------
1 file changed, 30 insertions(+), 15 deletions(-)
diff --git a/eventmesh-examples/src/main/java/org/apache/eventmesh/tcp/demo/pub/cloudevents/SyncRequest.java b/eventmesh-examples/src/main/java/org/apache/eventmesh/tcp/demo/pub/cloudevents/SyncRequest.java
index 2dceddfc..b39dc3fc 100644
--- a/eventmesh-examples/src/main/java/org/apache/eventmesh/tcp/demo/pub/cloudevents/SyncRequest.java
+++ b/eventmesh-examples/src/main/java/org/apache/eventmesh/tcp/demo/pub/cloudevents/SyncRequest.java
@@ -31,6 +31,8 @@ import java.nio.charset.StandardCharsets;
import java.util.Properties;
import io.cloudevents.CloudEvent;
+import io.cloudevents.CloudEventData;
+import io.cloudevents.core.format.EventFormat;
import io.cloudevents.core.provider.EventFormatProvider;
import io.cloudevents.jackson.JsonFormat;
@@ -39,29 +41,42 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class SyncRequest {
- private static EventMeshTCPClient<CloudEvent> client;
-
public static void main(String[] args) throws Exception {
Properties properties = Utils.readPropertiesFile(ExampleConstants.CONFIG_FILE_NAME);
final String eventMeshIp = properties.getProperty(ExampleConstants.EVENTMESH_IP);
final int eventMeshTcpPort = Integer.parseInt(properties.getProperty(ExampleConstants.EVENTMESH_TCP_PORT));
UserAgent userAgent = EventMeshTestUtils.generateClient1();
EventMeshTCPClientConfig eventMeshTcpClientConfig = EventMeshTCPClientConfig.builder()
- .host(eventMeshIp)
- .port(eventMeshTcpPort)
- .userAgent(userAgent)
- .build();
+ .host(eventMeshIp)
+ .port(eventMeshTcpPort)
+ .userAgent(userAgent)
+ .build();
try {
- client = EventMeshTCPClientFactory.createEventMeshTCPClient(
- eventMeshTcpClientConfig, CloudEvent.class);
- client.init();
+ Package response;
+ try (EventMeshTCPClient<CloudEvent> client = EventMeshTCPClientFactory.createEventMeshTCPClient(
+ eventMeshTcpClientConfig, CloudEvent.class)) {
+ client.init();
+
+ CloudEvent event = EventMeshTestUtils.generateCloudEventV1SyncRR();
+ log.info("begin send rr msg: {}", event);
+ response = client.rr(event, EventMeshCommon.DEFAULT_TIME_OUT_MILLS);
+ }
+ // check-NPE EventFormat
+ EventFormat eventFormat = EventFormatProvider.getInstance().resolveFormat(JsonFormat.CONTENT_TYPE);
+ if (null == eventFormat) {
+ log.error("eventFormat is null. end the process");
+ return;
+ }
+ CloudEvent replyEvent = eventFormat
+ .deserialize(response.getBody().toString().getBytes(StandardCharsets.UTF_8));
- CloudEvent event = EventMeshTestUtils.generateCloudEventV1SyncRR();
- log.info("begin send rr msg: {}", event);
- Package response = client.rr(event, EventMeshCommon.DEFAULT_TIME_OUT_MILLS);
- CloudEvent replyEvent = EventFormatProvider.getInstance().resolveFormat(JsonFormat.CONTENT_TYPE)
- .deserialize(response.getBody().toString().getBytes(StandardCharsets.UTF_8));
- String content = new String(replyEvent.getData().toBytes(), StandardCharsets.UTF_8);
+ // check-NPE CloudEventData
+ CloudEventData cloudEventData = replyEvent.getData();
+ if (null == cloudEventData) {
+ log.error("replyEvent.data is null. end the process");
+ return;
+ }
+ String content = new String(cloudEventData.toBytes(), StandardCharsets.UTF_8);
log.info("receive rr reply: {}|{}", response, content);
} catch (Exception e) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@eventmesh.apache.org
For additional commands, e-mail: commits-help@eventmesh.apache.org