You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2019/06/30 21:53:41 UTC

[tomcat] branch 7.0.x updated (aed9453 -> 8d61061)

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

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


    from aed9453  Align use of Allow header and HTTP 405 status code
     new d4fe28e  Since WebSocket requires Java 7, allow WebSocket to use Java 7 features.
     new 8d61061  Align with 8.5.x. o.a.t.websocket.pojo package

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 build.xml                                          |  7 +++-
 .../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}     |  5 +--
 .../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 ++++----
 14 files changed, 172 insertions(+), 58 deletions(-)
 create mode 100644 java/org/apache/tomcat/websocket/pojo/LocalStrings_es.properties
 create mode 100644 java/org/apache/tomcat/websocket/pojo/LocalStrings_fr.properties
 create mode 100644 java/org/apache/tomcat/websocket/pojo/LocalStrings_ja.properties
 copy java/{javax/servlet/LocalStrings_ja.properties => org/apache/tomcat/websocket/pojo/LocalStrings_ru.properties} (85%)


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


[tomcat] 02/02: Align with 8.5.x. o.a.t.websocket.pojo package

Posted by ma...@apache.org.
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: [tomcat] 01/02: Since WebSocket requires Java 7, allow WebSocket to use Java 7 features.

Posted by Mark Thomas <ma...@apache.org>.
On 30/06/2019 22:53, markt@apache.org wrote:
> 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 d4fe28eed8cc6d0223decf4145d09155d5a976a0
> Author: Mark Thomas <ma...@apache.org>
> AuthorDate: Sun Jun 30 22:49:02 2019 +0100
> 
>     Since WebSocket requires Java 7, allow WebSocket to use Java 7 features.
>     
>     This will enable the diff between WebSocket in 8.5.x and 7.0.x to be
>     minimised which will aid maintenance.

This was a nice idea but it means the WebSocket SCI doesn't run on Java
6 which breaks web apps rather than displaying the "You need to use Java
7 to use WebSocket" message.

I'll revert this shortly.

Mark


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


[tomcat] 01/02: Since WebSocket requires Java 7, allow WebSocket to use Java 7 features.

Posted by ma...@apache.org.
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 d4fe28eed8cc6d0223decf4145d09155d5a976a0
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Sun Jun 30 22:49:02 2019 +0100

    Since WebSocket requires Java 7, allow WebSocket to use Java 7 features.
    
    This will enable the diff between WebSocket in 8.5.x and 7.0.x to be
    minimised which will aid maintenance.
---
 build.xml | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/build.xml b/build.xml
index bd11b70..639fa20 100644
--- a/build.xml
+++ b/build.xml
@@ -83,6 +83,9 @@
   <!-- Servlet 3.0 spec requires 1.6+ -->
   <property name="compile.source" value="1.6"/>
   <property name="compile.target" value="1.6"/>
+  <!-- WebSocket 1.1 spec requires 1.7+ -->
+  <property name="compile.source.ws" value="1.7"/>
+  <property name="compile.target.ws" value="1.7"/>
 
   <!-- Locations to create the JAR artifacts -->
   <!-- Standard JARs -->
@@ -704,8 +707,8 @@
     <javac sourcepath="" srcdir="java" destdir="${tomcat.classes}"
            debug="${compile.debug}"
            deprecation="${compile.deprecation}"
-           source="${compile.source}"
-           target="${compile.target}"
+           source="${compile.source.ws}"
+           target="${compile.target.ws}"
            excludes="**/.svn/**"
            encoding="ISO-8859-1"
            includeAntRuntime="true"


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