This is an automated email from the ASF dual-hosted git repository.
technoboy pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new 58e28bb343a Check the validity of config before start websocket
service (#22231)
58e28bb343a is described below
commit 58e28bb343ac25e26e69fcc21ed33018ffa6696e
Author: Jiwe Guo <[email protected]>
AuthorDate: Fri Mar 15 16:28:54 2024 +0800
Check the validity of config before start websocket service (#22231)
---
.../java/org/apache/pulsar/websocket/ProducerHandler.java | 14 +++++++++++---
.../pulsar/websocket/service/WebSocketServiceStarter.java | 12 +++++++++---
2 files changed, 20 insertions(+), 6 deletions(-)
diff --git
a/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ProducerHandler.java
b/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ProducerHandler.java
index 1dc3f202fe0..15acfa9467a 100644
---
a/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ProducerHandler.java
+++
b/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ProducerHandler.java
@@ -36,6 +36,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLongFieldUpdater;
import java.util.concurrent.atomic.LongAdder;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import org.apache.pulsar.broker.authentication.AuthenticationDataSource;
import org.apache.pulsar.client.api.CompressionType;
import org.apache.pulsar.client.api.HashingScheme;
@@ -100,11 +101,18 @@ public class ProducerHandler extends
AbstractWebSocketHandler {
request.getRemotePort(), topic);
}
} catch (Exception e) {
- log.warn("[{}:{}] Failed in creating producer on topic {}: {}",
request.getRemoteAddr(),
- request.getRemotePort(), topic, e.getMessage());
+ int errorCode = getErrorCode(e);
+ boolean isKnownError = errorCode !=
HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
+ if (isKnownError) {
+ log.warn("[{}:{}] Failed in creating producer on topic {}:
{}", request.getRemoteAddr(),
+ request.getRemotePort(), topic, e.getMessage());
+ } else {
+ log.error("[{}:{}] Failed in creating producer on topic {}:
{}", request.getRemoteAddr(),
+ request.getRemotePort(), topic, e.getMessage(), e);
+ }
try {
- response.sendError(getErrorCode(e), getErrorMessage(e));
+ response.sendError(errorCode, getErrorMessage(e));
} catch (IOException e1) {
log.warn("[{}:{}] Failed to send error: {}",
request.getRemoteAddr(), request.getRemotePort(),
e1.getMessage(), e1);
diff --git
a/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/service/WebSocketServiceStarter.java
b/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/service/WebSocketServiceStarter.java
index 6231ef1a2aa..e9eac5934fa 100644
---
a/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/service/WebSocketServiceStarter.java
+++
b/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/service/WebSocketServiceStarter.java
@@ -74,9 +74,7 @@ public class WebSocketServiceStarter {
try {
// load config file and start proxy service
String configFile = args[0];
- log.info("Loading configuration from {}", configFile);
- WebSocketProxyConfiguration config =
PulsarConfigurationLoader.create(configFile,
- WebSocketProxyConfiguration.class);
+ WebSocketProxyConfiguration config = loadConfig(configFile);
ProxyServer proxyServer = new ProxyServer(config);
WebSocketService service = new WebSocketService(config);
start(proxyServer, service);
@@ -106,6 +104,14 @@ public class WebSocketServiceStarter {
service.start();
}
+ private static WebSocketProxyConfiguration loadConfig(String configFile)
throws Exception {
+ log.info("Loading configuration from {}", configFile);
+ WebSocketProxyConfiguration config =
PulsarConfigurationLoader.create(configFile,
+ WebSocketProxyConfiguration.class);
+ PulsarConfigurationLoader.isComplete(config);
+ return config;
+ }
+
private static final Logger log =
LoggerFactory.getLogger(WebSocketServiceStarter.class);
}