Fix #23580 Refer to parameter-encoding only if charset is not specified.
Signed-off-by: hs536 <sawamura.hiroki@fujitsu.com>
diff --git a/appserver/web/web-core/src/main/java/org/apache/catalina/connector/Request.java b/appserver/web/web-core/src/main/java/org/apache/catalina/connector/Request.java
index 3c3eb63..6f766ea 100644
--- a/appserver/web/web-core/src/main/java/org/apache/catalina/connector/Request.java
+++ b/appserver/web/web-core/src/main/java/org/apache/catalina/connector/Request.java
@@ -704,17 +704,20 @@
if (p != null) {
hostValve = p.getBasic();
}
- try {
- String reqEncoding = this.servletContext.getRequestCharacterEncoding();
- if (reqEncoding != null) {
- setCharacterEncoding(reqEncoding);
+ String charsetEncoding = getCharacterEncoding();
+ if (charsetEncoding == null) {
+ try {
+ String reqEncoding = this.servletContext.getRequestCharacterEncoding();
+ if (reqEncoding != null) {
+ setCharacterEncoding(reqEncoding);
+ }
+ String resEncoding = this.servletContext.getResponseCharacterEncoding();
+ if (resEncoding != null) {
+ getResponse().getResponse().setCharacterEncoding(resEncoding);
+ }
+ } catch(UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
}
- String resEncoding = this.servletContext.getResponseCharacterEncoding();
- if (resEncoding != null) {
- getResponse().getResponse().setCharacterEncoding(resEncoding);
- }
- } catch(UnsupportedEncodingException e) {
- throw new RuntimeException(e);
}
}
// START GlassFish 896