This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 8d610617ca048c042f0beb749ad8a87f4b41708b
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Sun Jun 30 22:52:09 2019 +0100

    Align with 8.5.x. o.a.t.websocket.pojo package
---
 .../apache/tomcat/websocket/pojo/Constants.java    | 12 +++++-
 .../websocket/pojo/LocalStrings_es.properties      | 24 ++++++++++++
 .../websocket/pojo/LocalStrings_fr.properties      | 45 ++++++++++++++++++++++
 .../websocket/pojo/LocalStrings_ja.properties      | 45 ++++++++++++++++++++++
 .../websocket/pojo/LocalStrings_ru.properties      | 16 ++++++++
 .../tomcat/websocket/pojo/PojoEndpointBase.java    | 16 +++-----
 .../tomcat/websocket/pojo/PojoEndpointServer.java  | 21 ++++++----
 .../websocket/pojo/PojoMessageHandlerBase.java     |  4 +-
 .../pojo/PojoMessageHandlerPartialBase.java        |  4 +-
 .../pojo/PojoMessageHandlerWholeBase.java          |  4 +-
 .../pojo/PojoMessageHandlerWholeBinary.java        | 15 +++-----
 .../pojo/PojoMessageHandlerWholeText.java          | 12 +++---
 .../tomcat/websocket/pojo/PojoMethodMapping.java   | 16 ++++----
 13 files changed, 182 insertions(+), 52 deletions(-)

diff --git a/java/org/apache/tomcat/websocket/pojo/Constants.java 
b/java/org/apache/tomcat/websocket/pojo/Constants.java
index bcc9978..4edd4dd 100644
--- a/java/org/apache/tomcat/websocket/pojo/Constants.java
+++ b/java/org/apache/tomcat/websocket/pojo/Constants.java
@@ -21,8 +21,16 @@ package org.apache.tomcat.websocket.pojo;
  */
 public class Constants {
 
-    protected static final String PACKAGE_NAME =
-            Constants.class.getPackage().getName();
+    /**
+     * @deprecated. Will be removed in 8.5.x onwards.
+     */
+    @Deprecated
+    protected static final String PACKAGE_NAME = 
Constants.class.getPackage().getName();
+
+    public static final String POJO_PATH_PARAM_KEY =
+            "org.apache.tomcat.websocket.pojo.PojoEndpoint.pathParams";
+    public static final String POJO_METHOD_MAPPING_KEY =
+            "org.apache.tomcat.websocket.pojo.PojoEndpoint.methodMapping";
 
     private Constants() {
         // Hide default constructor
diff --git a/java/org/apache/tomcat/websocket/pojo/LocalStrings_es.properties 
b/java/org/apache/tomcat/websocket/pojo/LocalStrings_es.properties
new file mode 100644
index 0000000..bbef800
--- /dev/null
+++ b/java/org/apache/tomcat/websocket/pojo/LocalStrings_es.properties
@@ -0,0 +1,24 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+pojoEndpointBase.onCloseFail=Fallo al llamar el método onClose del endpoint 
POJO para el tipo POJO [{0}]
+pojoEndpointBase.onOpenFail=Fallo al llamar el método onOpen del end point 
POJO para el tipo POJO [{0}]\n
+
+pojoEndpointServer.getPojoInstanceFail=Fallo al crear la instancia POJO de 
tipo [{0}]\n
+
+pojoMethodMapping.duplicateAnnotation=Anotaciones duplicadas [{0}] presente en 
la clase [{1}]\n
+pojoMethodMapping.duplicatePongMessageParam=Varios parámetros de  PongMessage  
estan presentes en el método [{0}] de la clase [{1}] que fue anotado con 
OnMessage
+pojoMethodMapping.invalidDecoder=El decodificador especificado de tipo [{0}]  
no puede ser instanciado\n
+pojoMethodMapping.onErrorNoThrowable=Parámetro no descartable estaba presente 
en el método [{0}] de clase [{1}] que fue apuntado con OnError
diff --git a/java/org/apache/tomcat/websocket/pojo/LocalStrings_fr.properties 
b/java/org/apache/tomcat/websocket/pojo/LocalStrings_fr.properties
new file mode 100644
index 0000000..186ee96
--- /dev/null
+++ b/java/org/apache/tomcat/websocket/pojo/LocalStrings_fr.properties
@@ -0,0 +1,45 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+pojoEndpointBase.closeSessionFail=Echec de fermeture de la session WebSocket 
pendant le traitement d'erreur
+pojoEndpointBase.onCloseFail=Echec lors de l''appel de la méthode onClose du 
point de terminaison POJO de type [{0}]
+pojoEndpointBase.onError=Aucun gestionnaire d''erreur n''est configuré pour 
[{0}] et l''erreur suivante s''est produite
+pojoEndpointBase.onErrorFail=Echec de l''appel de la méthode onError du point 
de terminaison POJO pour le type [{0}]
+pojoEndpointBase.onOpenFail=Impossible d’appeler la méthode onOpen du point de 
terminaison POJO de type [{0}]
+
+pojoEndpointServer.getPojoInstanceFail=Échec de création d''une instance de 
POJO de type [{0}]
+
+pojoMessageHandlerWhole.decodeIoFail=Erreur d'IO lors du décodage du message
+pojoMessageHandlerWhole.maxBufferSize=La taille maximale de message supportée 
par cette implémentation est Integer.MAX_VALUE
+
+pojoMethodMapping.decodePathParamFail=Echec de décodage de la valeur de 
paramètre de chemin [{0}] vers le type attendu [{1}]
+pojoMethodMapping.duplicateAnnotation=Annotations dupliquées [{0}] présentes 
pour la classe [{1}]
+pojoMethodMapping.duplicateLastParam=Multiple (derniers) paramètres booléens 
présents sur la méthode [{0}] de classe [{1}], qui était annotée par OnMessage
+pojoMethodMapping.duplicateMessageParam=De multiples paramètres de message 
sont présents sur la méthode [{0}] de la classe [{1}] qui a été annotée avec 
OnMessage
+pojoMethodMapping.duplicatePongMessageParam=De multiples paramètres 
PongMessage sont présents sur la méthode [{0}] de la classe [{1}] qui a été 
annotée avec OnMessage
+pojoMethodMapping.duplicateSessionParam=De multiples paramètres de session 
sont présents sur la méthode [{0}] de la classe [{1}] qui a été annotée avec 
OnMessage
+pojoMethodMapping.invalidDecoder=Le décodeur de type [{0}] spécifié n''a pas 
pu être instantié
+pojoMethodMapping.methodNotPublic=La méthode [{0}] annotée n''est pas publique
+pojoMethodMapping.noDecoder=Aucun décodeur n''a été trouvé pour les paramètres 
de message présents sur la méthode [{0}] de la classe [{1}] qui a été annotée 
avec OnMessage
+pojoMethodMapping.noPayload=Pas de paramètre de données présent sur la méthode 
[{0}] de la classe [{1}] qui a été annotée par OnMessage
+pojoMethodMapping.onErrorNoThrowable=Aucun paramètre Throwable n''est présent 
sur la méthode [{0}] de la classe [{1}] qui est annotée par OnError
+pojoMethodMapping.paramWithoutAnnotation=Un paramètre de type [{0}] a été 
trouvé sur la méthode [{1}] de la classe [{2}] qui n''avait pas d''annotation 
@PathParam
+pojoMethodMapping.partialInputStream=L''InputStream et les paramètres booléens 
présents sur la méthode [{0}] de la classe [{1}] qui a été annotée par 
OnMessage sont invalides
+pojoMethodMapping.partialObject=L''objet et la paramètres booléens présents 
sur la méthode [{0}] de la classe [{1}] qui a été annotée par OnMessage sont 
invalides
+pojoMethodMapping.partialPong=Le PongMessage et les paramètres booléens 
présents sur la méthode [{0}] de la classe [{1}] qui a été annotée par 
OnMessage sont invalides
+pojoMethodMapping.partialReader=Le Reader et les paramètres booléens présents 
sur la méthode [{0}] de la classe [{1}] qui a été annotée par OnMessage sont 
invalides
+pojoMethodMapping.pongWithPayload=Le PongMessage et les paramètres de message 
présents sur la méthode [{0}] de la classe [{1}] qui a été annotée par 
OnMessage sont invalides
+
+pojoPathParam.wrongType=Le type [{0}] n''est pas autorisé en tant que 
paramètre de chemin, les paramètres annotés avec @PathParm doivent être 
uniquement des String, des primitives Java ou des versions encapsulées de 
celles ci
diff --git a/java/org/apache/tomcat/websocket/pojo/LocalStrings_ja.properties 
b/java/org/apache/tomcat/websocket/pojo/LocalStrings_ja.properties
new file mode 100644
index 0000000..e28e5e3
--- /dev/null
+++ b/java/org/apache/tomcat/websocket/pojo/LocalStrings_ja.properties
@@ -0,0 +1,45 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+pojoEndpointBase.closeSessionFail=エラー処理中に WebSocket セッションを切断できませんでした。
+pojoEndpointBase.onCloseFail=タイプ[{0}]のPOJOのPOJOエンドポイントのonCloseメソッドの呼び出しに失敗しました
+pojoEndpointBase.onError=[{0}]に対してエラー処理が構成されておらず、次のエラーが発生しました。
+pojoEndpointBase.onErrorFail=タイプ[{0}]のPOJOのPOJOエンドポイントのonErrorメソッドの呼び出しに失敗しました
+pojoEndpointBase.onOpenFail=タイプ[{0}]のPOJOのPOJOエンドポイントのonOpenメソッドの呼び出しに失敗しました。
+
+pojoEndpointServer.getPojoInstanceFail=POJO クラス [{0}] をインスタンス化できませんでした。
+
+pojoMessageHandlerWhole.decodeIoFail=メッセージの復号中に入出力エラーが発生しました。
+pojoMessageHandlerWhole.maxBufferSize=この実装で対応可能なメッセージサイズの上限値は 
Integer.MAX_VALUE です。
+
+pojoMethodMapping.decodePathParamFail=パスパラメータの値 [{0}] を [{1}] 型として解釈できません。
+pojoMethodMapping.duplicateAnnotation=クラス [{1}] にアノテーション [{0}] が重複しています。
+pojoMethodMapping.duplicateLastParam=OnMessageでアノテーション付けされたクラス[{1}]のメソッド[{0}]に複数のbooleanパラメータが存在します。
+pojoMethodMapping.duplicateMessageParam=OnMessage アノテーションで修飾されたクラス [{1}] のメソッド 
[{0}] に複数のメッセージパラメーターが存在します。
+pojoMethodMapping.duplicatePongMessageParam=OnMessageでアノテーションされたクラス[{1}]のメソッド[{0}]に複数のPongMessageパラメータが存在します。
+pojoMethodMapping.duplicateSessionParam=OnMessage アノテーションで修飾したクラス [{1}] のメソッド 
[{0}] に複数のセッションパラメーターが存在します。
+pojoMethodMapping.invalidDecoder=指定されたデコーダークラス [{0}] をインスタンス化できませんでした。
+pojoMethodMapping.methodNotPublic=アノテーション付きめそっぢがpublicではありません。
+pojoMethodMapping.noDecoder=OnMessageでアノテーションが付けられたクラス[{1}]のメソッド[{0}]に存在するメッセージパラメータのデコーダが見つかりませんでした。
+pojoMethodMapping.noPayload=OnMessage アノテーションで修飾されたクラス [{1}] のメソッド [{0}] 
にはペイロードに対応するパラメーターがありません。
+pojoMethodMapping.onErrorNoThrowable=OnErrorでアノテーション付けされたクラス[{1}]のメソッド[{0}]に、Throwableパラメータがありませんでした。
+pojoMethodMapping.paramWithoutAnnotation=@PathParamアノテーションを持たなかったクラス[{2}]のメソッド[{1}]に[{0}]型のパラメータが見つかりました
+pojoMethodMapping.partialInputStream=OnMessage アノテーションで修飾されたクラス [{1}] のメソッド 
[{0}] に入力ストリームと boolean の不正なパラメーターが存在します。
+pojoMethodMapping.partialObject=OnMessageでアノテーションされたクラス[{1}]のメソッド[{0}]に無効なオブジェクトおよびboolean
 パラメータがあります
+pojoMethodMapping.partialPong=OnMessageでアノテーション付けされたクラス[{1}]のメソッド[{0}]に存在するPongMessageパラメータおよびbooleanパラメータが無効です。
+pojoMethodMapping.partialReader=OnMessage アノテーションで修飾したクラス [{1}] のメソッド [{0}] に 
Reader および boolean の不正なパラメーターがあります。
+pojoMethodMapping.pongWithPayload=OnMessageでアノテーションが付けられたクラス[{1}]のメソッド[{0}]に、無効なPongMessageおよびMessageパラメータがあります。
+
+pojoPathParam.wrongType=タイプ[{0}]はパスパラメータとして許可されていません。 
@PathParamでアノテーションが付けられたパラメータは、文字列、Javaプリミティブ、またはそれらのボックス版のみです。
diff --git a/java/org/apache/tomcat/websocket/pojo/LocalStrings_ru.properties 
b/java/org/apache/tomcat/websocket/pojo/LocalStrings_ru.properties
new file mode 100644
index 0000000..418615bf
--- /dev/null
+++ b/java/org/apache/tomcat/websocket/pojo/LocalStrings_ru.properties
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+pojoMethodMapping.duplicateAnnotation=Аналогичная аннотация [{0}] существует в 
классе [{1}]
diff --git a/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java 
b/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java
index b9575ef..75615d4 100644
--- a/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java
+++ b/java/org/apache/tomcat/websocket/pojo/PojoEndpointBase.java
@@ -40,8 +40,7 @@ import org.apache.tomcat.util.res.StringManager;
 public abstract class PojoEndpointBase extends Endpoint {
 
     private final Log log = LogFactory.getLog(PojoEndpointBase.class); // must 
not be static
-    private static final StringManager sm =
-            StringManager.getManager(Constants.PACKAGE_NAME);
+    private static final StringManager sm = 
StringManager.getManager(PojoEndpointBase.class);
 
     private Object pojo;
     private Map<String,String> pathParameters;
@@ -72,21 +71,18 @@ public abstract class PojoEndpointBase extends Endpoint {
                 log.error(sm.getString(
                         "pojoEndpointBase.onOpenFail",
                         pojo.getClass().getName()), e);
-                handleOnOpenError(session, e);
-                return;
+                handleOnOpenOrCloseError(session, e);
             } catch (InvocationTargetException e) {
                 Throwable cause = e.getCause();
-                handleOnOpenError(session, cause);
-                return;
+                handleOnOpenOrCloseError(session, cause);
             } catch (Throwable t) {
-                handleOnOpenError(session, t);
-                return;
+                handleOnOpenOrCloseError(session, t);
             }
         }
     }
 
 
-    private void handleOnOpenError(Session session, Throwable t) {
+    private void handleOnOpenOrCloseError(Session session, Throwable t) {
         // If really fatal - re-throw
         ExceptionUtils.handleThrowable(t);
 
@@ -107,9 +103,9 @@ public abstract class PojoEndpointBase extends Endpoint {
                 methodMapping.getOnClose().invoke(pojo,
                         methodMapping.getOnCloseArgs(pathParameters, session, 
closeReason));
             } catch (Throwable t) {
-                ExceptionUtils.handleThrowable(t);
                 log.error(sm.getString("pojoEndpointBase.onCloseFail",
                         pojo.getClass().getName()), t);
+                handleOnOpenOrCloseError(session, t);
             }
         }
 
diff --git a/java/org/apache/tomcat/websocket/pojo/PojoEndpointServer.java 
b/java/org/apache/tomcat/websocket/pojo/PojoEndpointServer.java
index 77ef83d..f7766e6 100644
--- a/java/org/apache/tomcat/websocket/pojo/PojoEndpointServer.java
+++ b/java/org/apache/tomcat/websocket/pojo/PojoEndpointServer.java
@@ -32,12 +32,19 @@ import org.apache.tomcat.util.res.StringManager;
 public class PojoEndpointServer extends PojoEndpointBase {
 
     private static final StringManager sm =
-            StringManager.getManager(Constants.PACKAGE_NAME);
+            StringManager.getManager(PojoEndpointServer.class);
 
-    public static final String POJO_PATH_PARAM_KEY =
-            "org.apache.tomcat.websocket.pojo.PojoEndpoint.pathParams";
-    public static final String POJO_METHOD_MAPPING_KEY =
-            "org.apache.tomcat.websocket.pojo.PojoEndpoint.methodMapping";
+    /**
+     * @deprecated. Will be removed in 8.5.x onwards.
+     */
+    @Deprecated
+    public static final String POJO_PATH_PARAM_KEY = 
Constants.POJO_PATH_PARAM_KEY;
+
+    /**
+     * @deprecated. Will be removed in 8.5.x onwards.
+     */
+    @Deprecated
+    public static final String POJO_METHOD_MAPPING_KEY = 
Constants.POJO_METHOD_MAPPING_KEY;
 
 
     @Override
@@ -59,12 +66,12 @@ public class PojoEndpointServer extends PojoEndpointBase {
         @SuppressWarnings("unchecked")
         Map<String,String> pathParameters =
                 (Map<String, String>) sec.getUserProperties().get(
-                        POJO_PATH_PARAM_KEY);
+                        Constants.POJO_PATH_PARAM_KEY);
         setPathParameters(pathParameters);
 
         PojoMethodMapping methodMapping =
                 (PojoMethodMapping) sec.getUserProperties().get(
-                        POJO_METHOD_MAPPING_KEY);
+                        Constants.POJO_METHOD_MAPPING_KEY);
         setMethodMapping(methodMapping);
 
         doOnOpen(session, endpointConfig);
diff --git a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java 
b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java
index a36ef1f..bc125c7 100644
--- a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java
+++ b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerBase.java
@@ -83,10 +83,8 @@ public abstract class PojoMessageHandlerBase<T>
             } else {
                 remoteEndpoint.sendObject(result);
             }
-        } catch (IOException ioe) {
+        } catch (IOException | EncodeException ioe) {
             throw new IllegalStateException(ioe);
-        } catch (EncodeException ee) {
-            throw new IllegalStateException(ee);
         }
     }
 
diff --git 
a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBase.java 
b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBase.java
index 7a7261f..4a0f525 100644
--- a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBase.java
+++ b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerPartialBase.java
@@ -69,9 +69,7 @@ public abstract class PojoMessageHandlerPartialBase<T>
         Object result = null;
         try {
             result = method.invoke(pojo, parameters);
-        } catch (IllegalAccessException e) {
-            handlePojoMethodException(e);
-        } catch (InvocationTargetException e) {
+        } catch (IllegalAccessException | InvocationTargetException e) {
             handlePojoMethodException(e);
         }
         processResult(result);
diff --git 
a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java 
b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java
index b864c64..aa4abbe 100644
--- a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java
+++ b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBase.java
@@ -78,9 +78,7 @@ public abstract class PojoMessageHandlerWholeBase<T>
         Object result = null;
         try {
             result = method.invoke(pojo, parameters);
-        } catch (IllegalAccessException e) {
-            handlePojoMethodException(e);
-        } catch (InvocationTargetException e) {
+        } catch (IllegalAccessException | InvocationTargetException e) {
             handlePojoMethodException(e);
         }
         processResult(result);
diff --git 
a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java 
b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java
index 8282504..e4756f6 100644
--- a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java
+++ b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeBinary.java
@@ -39,9 +39,9 @@ public class PojoMessageHandlerWholeBinary
         extends PojoMessageHandlerWholeBase<ByteBuffer> {
 
     private static final StringManager sm =
-            StringManager.getManager(Constants.PACKAGE_NAME);
+            StringManager.getManager(PojoMessageHandlerWholeBinary.class);
 
-    private final List<Decoder> decoders = new ArrayList<Decoder>();
+    private final List<Decoder> decoders = new ArrayList<>();
 
     private final boolean isForInputStream;
 
@@ -66,14 +66,13 @@ public class PojoMessageHandlerWholeBinary
             if (decoderClazzes != null) {
                 for (Class<? extends Decoder> decoderClazz : decoderClazzes) {
                     if (Binary.class.isAssignableFrom(decoderClazz)) {
-                        Binary<?> decoder =
-                                (Binary<?>) decoderClazz.newInstance();
+                        Binary<?> decoder = (Binary<?>) 
decoderClazz.getConstructor().newInstance();
                         decoder.init(config);
                         decoders.add(decoder);
                     } else if (BinaryStream.class.isAssignableFrom(
                             decoderClazz)) {
-                        BinaryStream<?> decoder =
-                                (BinaryStream<?>) decoderClazz.newInstance();
+                        BinaryStream<?> decoder = (BinaryStream<?>)
+                                decoderClazz.getConstructor().newInstance();
                         decoder.init(config);
                         decoders.add(decoder);
                     } else {
@@ -81,9 +80,7 @@ public class PojoMessageHandlerWholeBinary
                     }
                 }
             }
-        } catch (IllegalAccessException e) {
-            throw new IllegalArgumentException(e);
-        } catch (InstantiationException e) {
+        } catch (ReflectiveOperationException e) {
             throw new IllegalArgumentException(e);
         }
         this.isForInputStream = isForInputStream;
diff --git 
a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java 
b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java
index d30dcc3..3ec4bd7 100644
--- a/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java
+++ b/java/org/apache/tomcat/websocket/pojo/PojoMessageHandlerWholeText.java
@@ -40,9 +40,9 @@ public class PojoMessageHandlerWholeText
         extends PojoMessageHandlerWholeBase<String> {
 
     private static final StringManager sm =
-            StringManager.getManager(Constants.PACKAGE_NAME);
+            StringManager.getManager(PojoMessageHandlerWholeText.class);
 
-    private final List<Decoder> decoders = new ArrayList<Decoder>();
+    private final List<Decoder> decoders = new ArrayList<>();
     private final Class<?> primitiveType;
 
     public PojoMessageHandlerWholeText(Object pojo, Method method,
@@ -75,13 +75,13 @@ public class PojoMessageHandlerWholeText
             if (decoderClazzes != null) {
                 for (Class<? extends Decoder> decoderClazz : decoderClazzes) {
                     if (Text.class.isAssignableFrom(decoderClazz)) {
-                        Text<?> decoder = (Text<?>) decoderClazz.newInstance();
+                        Text<?> decoder = (Text<?>) 
decoderClazz.getConstructor().newInstance();
                         decoder.init(config);
                         decoders.add(decoder);
                     } else if (TextStream.class.isAssignableFrom(
                             decoderClazz)) {
                         TextStream<?> decoder =
-                                (TextStream<?>) decoderClazz.newInstance();
+                                (TextStream<?>) 
decoderClazz.getConstructor().newInstance();
                         decoder.init(config);
                         decoders.add(decoder);
                     } else {
@@ -89,9 +89,7 @@ public class PojoMessageHandlerWholeText
                     }
                 }
             }
-        } catch (IllegalAccessException e) {
-            throw new IllegalArgumentException(e);
-        } catch (InstantiationException e) {
+        } catch (ReflectiveOperationException e) {
             throw new IllegalArgumentException(e);
         }
     }
diff --git a/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java 
b/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java
index 3a342f4..d640b53 100644
--- a/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java
+++ b/java/org/apache/tomcat/websocket/pojo/PojoMethodMapping.java
@@ -58,7 +58,7 @@ import org.apache.tomcat.websocket.Util.DecoderMatch;
 public class PojoMethodMapping {
 
     private static final StringManager sm =
-            StringManager.getManager(Constants.PACKAGE_NAME);
+            StringManager.getManager(PojoMethodMapping.class);
 
     private final Method onOpen;
     private final Method onClose;
@@ -66,7 +66,7 @@ public class PojoMethodMapping {
     private final PojoPathParam[] onOpenParams;
     private final PojoPathParam[] onCloseParams;
     private final PojoPathParam[] onErrorParams;
-    private final List<MessageHandlerInfo> onMessage = new 
ArrayList<MessageHandlerInfo>();
+    private final List<MessageHandlerInfo> onMessage = new ArrayList<>();
     private final String wsPath;
 
 
@@ -176,7 +176,7 @@ public class PojoMethodMapping {
                 error = null;
             }
         }
-        List<MessageHandlerInfo> overriddenOnMessage = new 
ArrayList<MessageHandlerInfo>();
+        List<MessageHandlerInfo> overriddenOnMessage = new ArrayList<>();
         for (MessageHandlerInfo messageHandler : onMessage) {
             if (messageHandler.m.getDeclaringClass() != clazzPojo
                     && isOverridenWithoutAnnotation(clazzPojoMethods, 
messageHandler.m, OnMessage.class)) {
@@ -204,9 +204,9 @@ public class PojoMethodMapping {
 
 
     private boolean isMethodOverride(Method method1, Method method2) {
-        return (method1.getName().equals(method2.getName())
+        return method1.getName().equals(method2.getName())
                 && method1.getReturnType().equals(method2.getReturnType())
-                && Arrays.equals(method1.getParameterTypes(), 
method2.getParameterTypes()));
+                && Arrays.equals(method1.getParameterTypes(), 
method2.getParameterTypes());
     }
 
 
@@ -271,7 +271,7 @@ public class PojoMethodMapping {
     public Set<MessageHandler> getMessageHandlers(Object pojo,
             Map<String,String> pathParameters, Session session,
             EndpointConfig config) {
-        Set<MessageHandler> result = new HashSet<MessageHandler>();
+        Set<MessageHandler> result = new HashSet<>();
         for (MessageHandlerInfo messageMethod : onMessage) {
             result.addAll(messageMethod.getMessageHandlers(pojo, 
pathParameters,
                     session, config));
@@ -373,7 +373,7 @@ public class PojoMethodMapping {
         private int indexInputStream = -1;
         private int indexReader = -1;
         private int indexPrimitive = -1;
-        private Map<Integer,PojoPathParam> indexPathParams = new 
HashMap<Integer,PojoPathParam>();
+        private Map<Integer,PojoPathParam> indexPathParams = new HashMap<>();
         private int indexPayload = -1;
         private DecoderMatch decoderMatch = null;
         private long maxMessageSize = -1;
@@ -644,7 +644,7 @@ public class PojoMethodMapping {
                 params[entry.getKey().intValue()] = value;
             }
 
-            Set<MessageHandler> results = new HashSet<MessageHandler>(2);
+            Set<MessageHandler> results = new HashSet<>(2);
             if (indexBoolean == -1) {
                 // Basic
                 if (indexString != -1 || indexPrimitive != -1) {


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to