Replace String UTF-8 with a charset
Signed-off-by: jansupol <jan.supol@oracle.com>
diff --git a/core-common/src/main/java/org/glassfish/jersey/internal/OsgiRegistry.java b/core-common/src/main/java/org/glassfish/jersey/internal/OsgiRegistry.java
index 77ab1e1..e69569e 100644
--- a/core-common/src/main/java/org/glassfish/jersey/internal/OsgiRegistry.java
+++ b/core-common/src/main/java/org/glassfish/jersey/internal/OsgiRegistry.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2024 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -57,6 +57,8 @@
import org.osgi.framework.FrameworkUtil;
import org.osgi.framework.SynchronousBundleListener;
+import static java.nio.charset.StandardCharsets.UTF_8;
+
/**
* Utility class to deal with OSGi runtime specific behavior.
* This is mainly to handle META-INF/services lookup
@@ -210,7 +212,7 @@
if (LOGGER.isLoggable(Level.FINEST)) {
LOGGER.log(Level.FINEST, "Loading providers for SPI: {0}", spi);
}
- reader = new BufferedReader(new InputStreamReader(spiRegistryUrl.openStream(), "UTF-8"));
+ reader = new BufferedReader(new InputStreamReader(spiRegistryUrl.openStream(), UTF_8));
String providerClassName;
final List<Class<?>> providerClasses = new ArrayList<Class<?>>();
diff --git a/core-common/src/main/java/org/glassfish/jersey/uri/UriComponent.java b/core-common/src/main/java/org/glassfish/jersey/uri/UriComponent.java
index 523614c..b543d01 100644
--- a/core-common/src/main/java/org/glassfish/jersey/uri/UriComponent.java
+++ b/core-common/src/main/java/org/glassfish/jersey/uri/UriComponent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -16,13 +16,11 @@
package org.glassfish.jersey.uri;
-import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URLDecoder;
import java.nio.ByteBuffer;
import java.nio.Buffer;
import java.nio.CharBuffer;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
@@ -34,6 +32,8 @@
import org.glassfish.jersey.internal.LocalizationMessages;
import org.glassfish.jersey.internal.util.collection.MultivaluedStringMap;
+import static java.nio.charset.StandardCharsets.UTF_8;
+
/**
* Utility class for validating, encoding and decoding components
* of a URI.
@@ -333,7 +333,7 @@
private static void appendUTF8EncodedCharacter(final StringBuilder sb, final int codePoint) {
final CharBuffer chars = CharBuffer.wrap(Character.toChars(codePoint));
- final ByteBuffer bytes = UTF_8_CHARSET.encode(chars);
+ final ByteBuffer bytes = UTF_8.encode(chars);
while (bytes.hasRemaining()) {
appendPercentEncodedOctet(sb, bytes.get() & 0xFF);
@@ -424,8 +424,6 @@
return table;
}
- private static final Charset UTF_8_CHARSET = Charset.forName("UTF-8");
-
/**
* Decodes characters of a string that are percent-encoded octets using
* UTF-8 decoding (if needed).
@@ -565,19 +563,14 @@
@SuppressWarnings("StatementWithEmptyBody")
private static void decodeQueryParam(final MultivaluedMap<String, String> params, final String param,
final boolean decodeNames, final boolean decodeValues) {
- try {
- final int equals = param.indexOf('=');
- if (equals > 0) {
- params.add((decodeNames) ? URLDecoder.decode(param.substring(0, equals), "UTF-8") : param.substring(0, equals),
- (decodeValues) ? URLDecoder.decode(param.substring(equals + 1), "UTF-8") : param.substring(equals + 1));
- } else if (equals == 0) {
- // no key declared, ignore
- } else if (param.length() > 0) {
- params.add((decodeNames) ? URLDecoder.decode(param, "UTF-8") : param, "");
- }
- } catch (final UnsupportedEncodingException ex) {
- // This should never occur
- throw new IllegalArgumentException(ex);
+ final int equals = param.indexOf('=');
+ if (equals > 0) {
+ params.add((decodeNames) ? URLDecoder.decode(param.substring(0, equals), UTF_8) : param.substring(0, equals),
+ (decodeValues) ? URLDecoder.decode(param.substring(equals + 1), UTF_8) : param.substring(equals + 1));
+ } else if (equals == 0) {
+ // no key declared, ignore
+ } else if (param.length() > 0) {
+ params.add((decodeNames) ? URLDecoder.decode(param, UTF_8) : param, "");
}
}
@@ -853,7 +846,7 @@
return i + 2;
} else {
//
- final CharBuffer cb = UTF_8_CHARSET.decode(bb);
+ final CharBuffer cb = UTF_8.decode(bb);
sb.append(cb.toString());
return i + ((Buffer) bb).limit() * 3 - 1;
}
diff --git a/core-server/src/main/java/org/glassfish/jersey/server/wadl/internal/generators/WadlGeneratorJAXBGrammarGenerator.java b/core-server/src/main/java/org/glassfish/jersey/server/wadl/internal/generators/WadlGeneratorJAXBGrammarGenerator.java
index 57468eb..aeb1f46 100644
--- a/core-server/src/main/java/org/glassfish/jersey/server/wadl/internal/generators/WadlGeneratorJAXBGrammarGenerator.java
+++ b/core-server/src/main/java/org/glassfish/jersey/server/wadl/internal/generators/WadlGeneratorJAXBGrammarGenerator.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -22,6 +22,7 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
+import java.nio.charset.StandardCharsets;
import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
@@ -360,7 +361,7 @@
for (final StreamResult result : results) {
final CharArrayWriter writer = (CharArrayWriter) result.getWriter();
- final byte[] contents = writer.toString().getBytes("UTF8");
+ final byte[] contents = writer.toString().getBytes(StandardCharsets.UTF_8);
extraFiles.put(
result.getSystemId(),
new ApplicationDescription.ExternalGrammar(
diff --git a/ext/mvc/src/main/java/org/glassfish/jersey/server/mvc/internal/TemplateHelper.java b/ext/mvc/src/main/java/org/glassfish/jersey/server/mvc/internal/TemplateHelper.java
index 4be0e26..27c8df5 100644
--- a/ext/mvc/src/main/java/org/glassfish/jersey/server/mvc/internal/TemplateHelper.java
+++ b/ext/mvc/src/main/java/org/glassfish/jersey/server/mvc/internal/TemplateHelper.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -18,6 +18,7 @@
import java.lang.annotation.Annotation;
import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@@ -44,8 +45,6 @@
*/
public final class TemplateHelper {
- private static final Charset DEFAULT_ENCODING = Charset.forName("UTF-8");
-
/**
* Return an absolute path to the given class where segments are separated using {@code delim} character and {@code path}
* is appended to this path.
@@ -138,7 +137,7 @@
final String enc = PropertiesHelper.getValue(configuration.getProperties(), MvcFeature.ENCODING + suffix,
String.class, null);
if (enc == null) {
- return DEFAULT_ENCODING;
+ return StandardCharsets.UTF_8;
} else {
return Charset.forName(enc);
}
diff --git a/incubator/html-json/src/main/java/org/glassfish/jersey/media/htmljson/HtmlJsonProvider.java b/incubator/html-json/src/main/java/org/glassfish/jersey/media/htmljson/HtmlJsonProvider.java
index f130472..1a9c6f4 100644
--- a/incubator/html-json/src/main/java/org/glassfish/jersey/media/htmljson/HtmlJsonProvider.java
+++ b/incubator/html-json/src/main/java/org/glassfish/jersey/media/htmljson/HtmlJsonProvider.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -23,6 +23,7 @@
import java.lang.reflect.Array;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
@@ -126,7 +127,7 @@
}
out.write(']');
} else {
- out.write(t.toString().getBytes("UTF-8"));
+ out.write(t.toString().getBytes(StandardCharsets.UTF_8));
}
}
diff --git a/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonMarshaller.java b/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonMarshaller.java
index 6e137af..be2bd61 100644
--- a/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonMarshaller.java
+++ b/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonMarshaller.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -20,7 +20,7 @@
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
@@ -40,8 +40,6 @@
*/
public class BaseJsonMarshaller implements JettisonMarshaller, JettisonConfigured {
- private static final Charset UTF8 = Charset.forName("UTF-8");
-
protected final Marshaller jaxbMarshaller;
protected JettisonConfig jsonConfig;
@@ -67,7 +65,7 @@
throw new IllegalArgumentException("The output stream is null");
}
- marshallToJSON(o, new OutputStreamWriter(outputStream, UTF8));
+ marshallToJSON(o, new OutputStreamWriter(outputStream, StandardCharsets.UTF_8));
}
public void marshallToJSON(Object o, Writer writer) throws JAXBException {
diff --git a/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonUnmarshaller.java b/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonUnmarshaller.java
index 0aa13c2..a5bdaeb 100644
--- a/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonUnmarshaller.java
+++ b/media/json-jettison/src/main/java/org/glassfish/jersey/jettison/internal/BaseJsonUnmarshaller.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -19,7 +19,7 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBElement;
@@ -41,8 +41,6 @@
*/
public class BaseJsonUnmarshaller implements JettisonUnmarshaller, JettisonConfigured {
- private static final Charset UTF8 = Charset.forName("UTF-8");
-
protected final Unmarshaller jaxbUnmarshaller;
protected final JettisonConfig jsonConfig;
@@ -62,7 +60,7 @@
// JsonUnmarshaller
public <T> T unmarshalFromJSON(InputStream inputStream, Class<T> expectedType) throws JAXBException {
- return unmarshalFromJSON(new InputStreamReader(inputStream, UTF8), expectedType);
+ return unmarshalFromJSON(new InputStreamReader(inputStream, StandardCharsets.UTF_8), expectedType);
}
@SuppressWarnings("unchecked")
@@ -75,7 +73,7 @@
}
public <T> JAXBElement<T> unmarshalJAXBElementFromJSON(InputStream inputStream, Class<T> declaredType) throws JAXBException {
- return unmarshalJAXBElementFromJSON(new InputStreamReader(inputStream, UTF8), declaredType);
+ return unmarshalJAXBElementFromJSON(new InputStreamReader(inputStream, StandardCharsets.UTF_8), declaredType);
}
public <T> JAXBElement<T> unmarshalJAXBElementFromJSON(Reader reader, Class<T> declaredType) throws JAXBException {
diff --git a/media/sse/src/main/java/org/glassfish/jersey/media/sse/EventOutput.java b/media/sse/src/main/java/org/glassfish/jersey/media/sse/EventOutput.java
index 4d63506..13306bd 100644
--- a/media/sse/src/main/java/org/glassfish/jersey/media/sse/EventOutput.java
+++ b/media/sse/src/main/java/org/glassfish/jersey/media/sse/EventOutput.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -16,10 +16,10 @@
package org.glassfish.jersey.media.sse;
-import java.nio.charset.Charset;
-
import org.glassfish.jersey.server.ChunkedOutput;
+import java.nio.charset.StandardCharsets;
+
/**
* Outbound Server-Sent Events channel.
*
@@ -31,7 +31,7 @@
*/
public class EventOutput extends ChunkedOutput<OutboundEvent> {
// encoding does not matter for lower ASCII characters
- private static final byte[] SSE_EVENT_DELIMITER = "\n".getBytes(Charset.forName("UTF-8"));
+ private static final byte[] SSE_EVENT_DELIMITER = "\n".getBytes(StandardCharsets.UTF_8);
/**
* Create new outbound Server-Sent Events channel.
diff --git a/security/oauth1-signature/src/main/java/org/glassfish/jersey/oauth1/signature/HmaSha1Method.java b/security/oauth1-signature/src/main/java/org/glassfish/jersey/oauth1/signature/HmaSha1Method.java
index ee770cd..0809552 100644
--- a/security/oauth1-signature/src/main/java/org/glassfish/jersey/oauth1/signature/HmaSha1Method.java
+++ b/security/oauth1-signature/src/main/java/org/glassfish/jersey/oauth1/signature/HmaSha1Method.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -16,7 +16,6 @@
package org.glassfish.jersey.oauth1.signature;
-import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
@@ -25,6 +24,8 @@
import org.glassfish.jersey.uri.UriComponent;
+import static java.nio.charset.StandardCharsets.UTF_8;
+
/**
* An OAuth signature method that implements HMAC-SHA1.
@@ -78,11 +79,7 @@
byte[] key;
- try {
- key = buf.toString().getBytes("UTF-8");
- } catch (UnsupportedEncodingException uee) {
- throw new IllegalStateException(uee);
- }
+ key = buf.toString().getBytes(UTF_8);
SecretKeySpec spec = new SecretKeySpec(key, SIGNATURE_ALGORITHM);