This is an automated email from the ASF dual-hosted git repository.
jleroux pushed a commit to branch release24.09
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/release24.09 by this push:
new 4613beb799 Fixed: ControlServlet falls into error with Cookies log
output when Debug log level is switched to verbose (OFBIZ-13148)
4613beb799 is described below
commit 4613beb799e76371abc18b64786852b3b390f5e5
Author: Jacques Le Roux <[email protected]>
AuthorDate: Fri Oct 11 08:55:05 2024 +0200
Fixed: ControlServlet falls into error with Cookies log output when Debug
log level is switched to verbose (OFBIZ-13148)
When running OfBiz with debug level logging, the ControlServlet on WebApp
falls
into a runtime error as follows when a web page is invoked:
Servlet.service() for servlet [ControlServlet] in context with path
[/cdc-resmon] threw exception java.lang.ArrayStoreException:
javax.servlet.http.Cookie
This is caused by the way Cookies are lined up to be streamed using a
Cookie[].
instead, Cookies should be rendered to a Map before being streamed to String
for logging.
---
.../src/main/java/org/apache/ofbiz/webapp/stats/VisitHandler.java | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/stats/VisitHandler.java
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/stats/VisitHandler.java
index a357a905c8..a6cf1f42de 100644
---
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/stats/VisitHandler.java
+++
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/stats/VisitHandler.java
@@ -22,6 +22,7 @@ import java.net.InetAddress;
import java.sql.Timestamp;
import java.util.Arrays;
import java.util.Locale;
+import java.util.stream.Collectors;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
@@ -235,7 +236,9 @@ public class VisitHandler {
Cookie[] cookies = request.getCookies();
if (cookies != null) {
if (Debug.verboseOn()) {
- Debug.logVerbose("Cookies:" +
String.join(",", Arrays.stream(cookies).toArray(String[]::new)), MODULE);
+ Debug.logVerbose("Cookies:" +
String.join(",", Arrays.stream(cookies)
+ .map(cookie -> cookie.getName() +
"=" + cookie.getValue())
+ .collect(Collectors.joining(",
"))), MODULE);
}
for (int i = 0; i < cookies.length; i++) {
if
(cookies[i].getName().equals(VISITOR_COOKIE_NAME)) {