This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mina-vysper.git
The following commit(s) were added to refs/heads/master by this push: new fe5b2f76 Use stock JRE Charset instead of magic string fe5b2f76 is described below commit fe5b2f764b8a56e6988bbcd0541f811679fd9ad0 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Sun Jul 16 09:56:27 2023 -0400 Use stock JRE Charset instead of magic string Clean up exceptions on non-public methods --- .../sax/impl/AbstractAsyncXMLReaderTestCase.java | 3 ++- .../sax/impl/DefaultAsyncXMLReaderTestCase.java | 12 ++++++----- .../vysper/xml/sax/impl/ParseElementsTestCase.java | 4 ++-- .../xml/sax/impl/XMPPContentHandlerTestCase.java | 3 ++- .../org/apache/vysper/xml/sax/perf/PerfRunner.java | 6 ++++-- .../DialbackIdGenerator.java | 24 +++++++++------------- .../apache/vysper/xmpp/parser/XMLParserUtil.java | 3 ++- .../websockets/WebSocketBackedSessionContext.java | 3 ++- .../xep0065_socks/Socks5IntegrationTest.java | 4 +++- .../vysper/xmpp/extension/xep0124/BoshServlet.java | 23 +++++++++------------ .../apache/vysper/storage/hbase/HBaseUtils.java | 17 ++++----------- .../storage/hbase/user/HBaseUserManagement.java | 3 ++- 12 files changed, 50 insertions(+), 55 deletions(-) diff --git a/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/AbstractAsyncXMLReaderTestCase.java b/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/AbstractAsyncXMLReaderTestCase.java index e1dda4d8..a77e2577 100644 --- a/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/AbstractAsyncXMLReaderTestCase.java +++ b/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/AbstractAsyncXMLReaderTestCase.java @@ -20,6 +20,7 @@ */ package org.apache.vysper.xml.sax.impl; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -145,7 +146,7 @@ public abstract class AbstractAsyncXMLReaderTestCase extends TestCase { reader.setContentHandler(handler); reader.setErrorHandler(handler); - reader.parse(IoBuffer.wrap(xml.getBytes("UTF-8")), CharsetUtil.getDecoder()); + reader.parse(IoBuffer.wrap(xml.getBytes(StandardCharsets.UTF_8)), CharsetUtil.getDecoder()); return handler.getEvents(); } diff --git a/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/DefaultAsyncXMLReaderTestCase.java b/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/DefaultAsyncXMLReaderTestCase.java index e4117087..274bb41c 100644 --- a/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/DefaultAsyncXMLReaderTestCase.java +++ b/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/DefaultAsyncXMLReaderTestCase.java @@ -19,6 +19,8 @@ */ package org.apache.vysper.xml.sax.impl; +import java.nio.charset.StandardCharsets; + import org.apache.mina.core.buffer.IoBuffer; import org.apache.vysper.charset.CharsetUtil; import org.apache.vysper.xml.sax.NonBlockingXMLReader; @@ -39,11 +41,11 @@ public class DefaultAsyncXMLReaderTestCase extends AbstractAsyncXMLReaderTestCas reader.setErrorHandler(handler); // causes a fatal error - reader.parse(IoBuffer.wrap("<root></error>".getBytes("UTF-8")), CharsetUtil.getDecoder()); + reader.parse(IoBuffer.wrap("<root></error>".getBytes(StandardCharsets.UTF_8)), CharsetUtil.getDecoder()); try { // not allowed to parse after an error - reader.parse(IoBuffer.wrap("<root>".getBytes("UTF-8")), CharsetUtil.getDecoder()); + reader.parse(IoBuffer.wrap("<root>".getBytes(StandardCharsets.UTF_8)), CharsetUtil.getDecoder()); fail("Must throw SAXException"); } catch (SAXException e) { // OK @@ -57,11 +59,11 @@ public class DefaultAsyncXMLReaderTestCase extends AbstractAsyncXMLReaderTestCas reader.setErrorHandler(handler); // causes a fatal error - reader.parse(IoBuffer.wrap("<root></root>".getBytes("UTF-8")), CharsetUtil.getDecoder()); + reader.parse(IoBuffer.wrap("<root></root>".getBytes(StandardCharsets.UTF_8)), CharsetUtil.getDecoder()); try { // not allowed to parse after end of document - reader.parse(IoBuffer.wrap("<root>".getBytes("UTF-8")), CharsetUtil.getDecoder()); + reader.parse(IoBuffer.wrap("<root>".getBytes(StandardCharsets.UTF_8)), CharsetUtil.getDecoder()); fail("Must throw SAXException"); } catch (SAXException e) { // OK @@ -135,7 +137,7 @@ public class DefaultAsyncXMLReaderTestCase extends AbstractAsyncXMLReaderTestCas public void testSetFeatureDuringParse() throws Exception { DefaultNonBlockingXMLReader reader = new DefaultNonBlockingXMLReader(); - reader.parse(IoBuffer.wrap("<foo />".getBytes("UTF-8")), CharsetUtil.getDecoder()); + reader.parse(IoBuffer.wrap("<foo />".getBytes(StandardCharsets.UTF_8)), CharsetUtil.getDecoder()); try { reader.setFeature("http://xml.org/sax/features/namespaces", true); fail("Must throw SAXNotSupportedException"); diff --git a/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/ParseElementsTestCase.java b/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/ParseElementsTestCase.java index 6d281282..329ed094 100644 --- a/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/ParseElementsTestCase.java +++ b/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/ParseElementsTestCase.java @@ -19,12 +19,12 @@ */ package org.apache.vysper.xml.sax.impl; +import java.nio.charset.StandardCharsets; import java.util.Iterator; import org.apache.mina.core.buffer.IoBuffer; import org.apache.vysper.charset.CharsetUtil; import org.apache.vysper.xml.sax.NonBlockingXMLReader; -import org.apache.vysper.xml.sax.impl.TestHandler.CharacterEvent; import org.apache.vysper.xml.sax.impl.TestHandler.TestEvent; /** @@ -181,7 +181,7 @@ public class ParseElementsTestCase extends AbstractAsyncXMLReaderTestCase { String s = "<root>\u1251</root>"; // split in the middle of the Unicode char - byte[] xml = s.getBytes("UTF-8"); + byte[] xml = s.getBytes(StandardCharsets.UTF_8); byte[] xml1 = new byte[8]; byte[] xml2 = new byte[8]; diff --git a/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/XMPPContentHandlerTestCase.java b/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/XMPPContentHandlerTestCase.java index 6a5f4539..18c7d532 100644 --- a/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/XMPPContentHandlerTestCase.java +++ b/nbxml/src/test/java/org/apache/vysper/xml/sax/impl/XMPPContentHandlerTestCase.java @@ -19,6 +19,7 @@ */ package org.apache.vysper.xml.sax.impl; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -76,7 +77,7 @@ public class XMPPContentHandlerTestCase extends TestCase { } private void parse(NonBlockingXMLReader reader, String xml) throws Exception { - reader.parse(IoBuffer.wrap(xml.getBytes("UTF-8")), CharsetUtil.getDecoder()); + reader.parse(IoBuffer.wrap(xml.getBytes(StandardCharsets.UTF_8)), CharsetUtil.getDecoder()); } } \ No newline at end of file diff --git a/nbxml/src/test/java/org/apache/vysper/xml/sax/perf/PerfRunner.java b/nbxml/src/test/java/org/apache/vysper/xml/sax/perf/PerfRunner.java index 5371f3f7..77c57099 100644 --- a/nbxml/src/test/java/org/apache/vysper/xml/sax/perf/PerfRunner.java +++ b/nbxml/src/test/java/org/apache/vysper/xml/sax/perf/PerfRunner.java @@ -19,6 +19,8 @@ */ package org.apache.vysper.xml.sax.perf; +import java.nio.charset.StandardCharsets; + import org.apache.mina.core.buffer.IoBuffer; import org.apache.vysper.charset.CharsetUtil; import org.apache.vysper.xml.decoder.XMLElementListener; @@ -49,8 +51,8 @@ public class PerfRunner { public static void main(String[] args) throws Exception { - IoBuffer opening = IoBuffer.wrap("<p:root xmlns:p='http://example.com'>".getBytes("UTF-8")); - IoBuffer buffer = IoBuffer.wrap(SINGLE_LEVEL_XML.getBytes("UTF-8")); + IoBuffer opening = IoBuffer.wrap("<p:root xmlns:p='http://example.com'>".getBytes(StandardCharsets.UTF_8)); + IoBuffer buffer = IoBuffer.wrap(SINGLE_LEVEL_XML.getBytes(StandardCharsets.UTF_8)); DefaultNonBlockingXMLReader reader = new DefaultNonBlockingXMLReader(); CounterStanzaListener listener = new CounterStanzaListener(); diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DialbackIdGenerator.java b/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DialbackIdGenerator.java index c4ce95ed..a10473df 100644 --- a/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DialbackIdGenerator.java +++ b/server/core/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0220_server_dailback/DialbackIdGenerator.java @@ -18,7 +18,7 @@ * */ package org.apache.vysper.xmpp.modules.extension.xep0220_server_dailback; -import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.UUID; @@ -54,19 +54,15 @@ public class DialbackIdGenerator { Validate.notNull(receiving, "receiving can not be null"); Validate.notNull(originating, "originating can not be null"); Validate.notNull(streamId, "streamId can not be null"); - - try { - mac.update(receiving.getDomain().getBytes("UTF-16")); - mac.update(" ".getBytes("UTF-16")); - mac.update(originating.getDomain().getBytes("UTF-16")); - mac.update(" ".getBytes("UTF-16")); - mac.update(streamId.getBytes("UTF-16")); - - byte[] rawHmac = mac.doFinal(); - return Hex.encodeHexString(rawHmac); - } catch (UnsupportedEncodingException e) { - throw new RuntimeException(e); - } + + mac.update(receiving.getDomain().getBytes(StandardCharsets.UTF_16)); + mac.update(" ".getBytes(StandardCharsets.UTF_16)); + mac.update(originating.getDomain().getBytes(StandardCharsets.UTF_16)); + mac.update(" ".getBytes(StandardCharsets.UTF_16)); + mac.update(streamId.getBytes(StandardCharsets.UTF_16)); + + byte[] rawHmac = mac.doFinal(); + return Hex.encodeHexString(rawHmac); } public boolean verify(String dailbackId, Entity receiving, Entity originating, String streamId) { diff --git a/server/core/src/main/java/org/apache/vysper/xmpp/parser/XMLParserUtil.java b/server/core/src/main/java/org/apache/vysper/xmpp/parser/XMLParserUtil.java index cd59af20..408b6580 100644 --- a/server/core/src/main/java/org/apache/vysper/xmpp/parser/XMLParserUtil.java +++ b/server/core/src/main/java/org/apache/vysper/xmpp/parser/XMLParserUtil.java @@ -21,6 +21,7 @@ package org.apache.vysper.xmpp.parser; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; @@ -65,7 +66,7 @@ public class XMLParserUtil { public void close() {} }); - IoBuffer buffer = IoBuffer.wrap(xml.getBytes("UTF-8")); + IoBuffer buffer = IoBuffer.wrap(xml.getBytes(StandardCharsets.UTF_8)); reader.parse(buffer, CharsetUtil.getDecoder()); if(!documents.isEmpty()) { diff --git a/server/extensions/websockets/src/main/java/org/apache/vysper/xmpp/extension/websockets/WebSocketBackedSessionContext.java b/server/extensions/websockets/src/main/java/org/apache/vysper/xmpp/extension/websockets/WebSocketBackedSessionContext.java index c96c4467..8e1b7030 100644 --- a/server/extensions/websockets/src/main/java/org/apache/vysper/xmpp/extension/websockets/WebSocketBackedSessionContext.java +++ b/server/extensions/websockets/src/main/java/org/apache/vysper/xmpp/extension/websockets/WebSocketBackedSessionContext.java @@ -22,6 +22,7 @@ package org.apache.vysper.xmpp.extension.websockets; import java.io.IOException; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; +import java.nio.charset.StandardCharsets; import org.apache.mina.core.buffer.IoBuffer; import org.apache.vysper.mina.codec.StanzaBuilderFactory; @@ -51,7 +52,7 @@ import org.xml.sax.SAXException; */ public class WebSocketBackedSessionContext extends AbstractSessionContext implements XMLElementListener, StanzaWriter { - private final static Charset CHARSET = Charset.forName("UTF-8"); + private final static Charset CHARSET = StandardCharsets.UTF_8; private final static CharsetDecoder CHARSET_DECODER = CHARSET.newDecoder(); diff --git a/server/extensions/xep0065-socks/src/test/java/org/apache/vysper/xmpp/extension/xep0065_socks/Socks5IntegrationTest.java b/server/extensions/xep0065-socks/src/test/java/org/apache/vysper/xmpp/extension/xep0065_socks/Socks5IntegrationTest.java index 96d4390d..bbe5659f 100644 --- a/server/extensions/xep0065-socks/src/test/java/org/apache/vysper/xmpp/extension/xep0065_socks/Socks5IntegrationTest.java +++ b/server/extensions/xep0065-socks/src/test/java/org/apache/vysper/xmpp/extension/xep0065_socks/Socks5IntegrationTest.java @@ -24,6 +24,8 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; @@ -80,7 +82,7 @@ public class Socks5IntegrationTest { private static final String PASSWORD = "password"; - private static final String CHARSET = "ASCII"; + private static final Charset CHARSET = StandardCharsets.US_ASCII; private static final String TEST_DATA = "hello world"; diff --git a/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshServlet.java b/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshServlet.java index 9f713694..87f37a68 100644 --- a/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshServlet.java +++ b/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshServlet.java @@ -29,7 +29,7 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.util.List; import static org.apache.vysper.xmpp.extension.xep0124.BoshBackedSessionContext.BOSH_REQUEST_ATTRIBUTE; @@ -101,20 +101,17 @@ public class BoshServlet extends HttpServlet { */ protected byte[] createFlashCrossDomainPolicy() { StringBuffer crossDomain = new StringBuffer(); - crossDomain.append("<?xml version='1.0'?>"); - crossDomain.append("<!DOCTYPE cross-domain-policy SYSTEM 'http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd'>"); + crossDomain.append("<?xml version='1.0'?>"); + crossDomain.append( + "<!DOCTYPE cross-domain-policy SYSTEM 'http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd'>"); crossDomain.append("<cross-domain-policy>"); - for(String domain : accessControlAllowOrigin) { - crossDomain.append("<allow-access-from domain='"); - crossDomain.append(domain); - crossDomain.append("' />"); - } - crossDomain.append("</cross-domain-policy>"); - try { - return crossDomain.toString().getBytes("UTF-8"); - } catch (UnsupportedEncodingException shouldNotHappen) { - throw new RuntimeException(shouldNotHappen); + for (String domain : accessControlAllowOrigin) { + crossDomain.append("<allow-access-from domain='"); + crossDomain.append(domain); + crossDomain.append("' />"); } + crossDomain.append("</cross-domain-policy>"); + return crossDomain.toString().getBytes(StandardCharsets.UTF_8); } protected String createAccessControlAllowOrigin() { diff --git a/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/HBaseUtils.java b/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/HBaseUtils.java index a0d8f491..8e6e7289 100644 --- a/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/HBaseUtils.java +++ b/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/HBaseUtils.java @@ -1,8 +1,8 @@ package org.apache.vysper.storage.hbase; -import org.apache.vysper.xmpp.addressing.Entity; +import java.nio.charset.StandardCharsets; -import java.io.UnsupportedEncodingException; +import org.apache.vysper.xmpp.addressing.Entity; /** */ @@ -10,12 +10,7 @@ public class HBaseUtils { public static byte[] asBytes(String str) { if (str == null) return null; - try { - return str.getBytes("UTF-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); // won't happen! UTF-8 is supported - return null; - } + return str.getBytes(StandardCharsets.UTF_8); } public static byte[] entityAsBytes(Entity entity) { @@ -25,10 +20,6 @@ public class HBaseUtils { public static String toStr(byte[] bytes) { if (bytes == null) return null; - try { - return new String(bytes, "UTF-8"); - } catch (UnsupportedEncodingException e) { - return null; // will not happen for UTF-8 - } + return new String(bytes, StandardCharsets.UTF_8); } } diff --git a/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/user/HBaseUserManagement.java b/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/user/HBaseUserManagement.java index e98c019c..0af3b6d6 100644 --- a/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/user/HBaseUserManagement.java +++ b/server/storage/hbase/src/main/java/org/apache/vysper/storage/hbase/user/HBaseUserManagement.java @@ -33,6 +33,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.util.Arrays; @@ -89,7 +90,7 @@ public class HBaseUserManagement implements UserAuthentication, AccountManagemen MessageDigest digest = MessageDigest.getInstance("SHA-256"); int rounds = Math.max(1, hashingRounds); - byte[] pwdBytes = passwordCleartext.getBytes("UTF-8"); + byte[] pwdBytes = passwordCleartext.getBytes(StandardCharsets.UTF_8); for (int i = 0; i < rounds; i++) { pwdBytes = digest.digest(pwdBytes); }