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

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


The following commit(s) were added to refs/heads/9.0.x by this push:
     new bd32600  BZ 54377 - Update code generation to use valueOf for boxed 
primitives
bd32600 is described below

commit bd3260055ae89e9014e61f255c906e929f1af81b
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Fri Jun 25 13:14:26 2021 +0100

    BZ 54377 - Update code generation to use valueOf for boxed primitives
    
    Constructors are deprecated as of Java 9 and marked for removal as of
    Java 16.
    https://bz.apache.org/bugzilla/show_bug.cgi?id=65377
---
 java/org/apache/jasper/compiler/JspUtil.java | 32 ++++++++++++++--------------
 webapps/docs/changelog.xml                   |  6 ++++++
 2 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/java/org/apache/jasper/compiler/JspUtil.java 
b/java/org/apache/jasper/compiler/JspUtil.java
index 6cfb761..3a827e7 100644
--- a/java/org/apache/jasper/compiler/JspUtil.java
+++ b/java/org/apache/jasper/compiler/JspUtil.java
@@ -428,10 +428,10 @@ public class JspUtil {
                     + s + ", java.lang.Boolean.class)";
         } else {
             if (s == null || s.length() == 0) {
-                return "new java.lang.Boolean(false)";
+                return "java.lang.Boolean.FALSE";
             } else {
                 // Detect format error at translation time
-                return "new java.lang.Boolean(" + 
Boolean.valueOf(s).toString() + ")";
+                return "java.lang.Boolean.valueOf(" + Generator.quote(s) + ")";
             }
         }
     }
@@ -456,10 +456,10 @@ public class JspUtil {
                     + s + ", java.lang.Byte.class)";
         } else {
             if (s == null || s.length() == 0) {
-                return "new java.lang.Byte((byte) 0)";
+                return "java.lang.Byte.valueOf((byte) 0)";
             } else {
                 // Detect format error at translation time
-                return "new java.lang.Byte((byte)" + 
Byte.valueOf(s).toString() + ")";
+                return "java.lang.Byte.valueOf(" + Generator.quote(s) + ")";
             }
         }
     }
@@ -485,11 +485,11 @@ public class JspUtil {
                     + s + ", java.lang.Character.class)";
         } else {
             if (s == null || s.length() == 0) {
-                return "new java.lang.Character((char) 0)";
+                return "java.lang.Character.valueOf((char) 0)";
             } else {
                 char ch = s.charAt(0);
                 // this trick avoids escaping issues
-                return "new java.lang.Character((char) " + (int) ch + ")";
+                return "java.lang.Character.valueOf((char) " + (int) ch + ")";
             }
         }
     }
@@ -514,10 +514,10 @@ public class JspUtil {
                     + s + ", Double.class)";
         } else {
             if (s == null || s.length() == 0) {
-                return "new java.lang.Double(0)";
+                return "java.lang.Double.valueOf(0)";
             } else {
                 // Detect format error at translation time
-                return "new java.lang.Double(" + Double.valueOf(s).toString() 
+ ")";
+                return "java.lang.Double.valueOf(" + Generator.quote(s) + ")";
             }
         }
     }
@@ -542,10 +542,10 @@ public class JspUtil {
                     + s + ", java.lang.Float.class)";
         } else {
             if (s == null || s.length() == 0) {
-                return "new java.lang.Float(0)";
+                return "java.lang.Float.valueOf(0)";
             } else {
                 // Detect format error at translation time
-                return "new java.lang.Float(" + Float.valueOf(s).toString() + 
"f)";
+                return "java.lang.Float.valueOf(" + Generator.quote(s) + ")";
             }
         }
     }
@@ -569,10 +569,10 @@ public class JspUtil {
                     + s + ", java.lang.Integer.class)";
         } else {
             if (s == null || s.length() == 0) {
-                return "new java.lang.Integer(0)";
+                return "java.lang.Integer.valueOf(0)";
             } else {
                 // Detect format error at translation time
-                return "new java.lang.Integer(" + 
Integer.valueOf(s).toString() + ")";
+                return "java.lang.Integer.valueOf(" + Generator.quote(s) + ")";
             }
         }
     }
@@ -597,10 +597,10 @@ public class JspUtil {
                     + s + ", java.lang.Short.class)";
         } else {
             if (s == null || s.length() == 0) {
-                return "new java.lang.Short((short) 0)";
+                return "java.lang.Short.valueOf((short) 0)";
             } else {
                 // Detect format error at translation time
-                return "new java.lang.Short(\"" + Short.valueOf(s).toString() 
+ "\")";
+                return "java.lang.Short.valueOf(" + Generator.quote(s) + ")";
             }
         }
     }
@@ -625,10 +625,10 @@ public class JspUtil {
                     + s + ", java.lang.Long.class)";
         } else {
             if (s == null || s.length() == 0) {
-                return "new java.lang.Long(0)";
+                return "java.lang.Long.valueOf(0)";
             } else {
                 // Detect format error at translation time
-                return "new java.lang.Long(" + Long.valueOf(s).toString() + 
"l)";
+                return "java.lang.Long.valueOf(" + Generator.quote(s) + ")";
             }
         }
     }
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index c18890c..8e8e795 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -210,6 +210,12 @@
         a warning will be logged and the latest supported version will used.
         (markt)
       </add>
+      <fix>
+        <bug>65377</bug>: Update the Java code generation for JSPs not to use
+        the boxed primitive constructors as they have been deprecated in Java 9
+        and marked for future removal in Java 16. <code>valueOf()</code> is now
+        used instead. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="WebSocket">

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

Reply via email to