https://bz.apache.org/bugzilla/show_bug.cgi?id=66161

            Bug ID: 66161
           Summary: EL change broke String.concat with null
           Product: Tomcat 9
           Version: 9.0.64
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: EL
          Assignee: dev@tomcat.apache.org
          Reporter: t...@silbergrau.com
  Target Milestone: -----

Hello, I use Tomcat 9 with JSF. Currently 9.0.59 and wanted to update to
9.0.64. 
Then a Nullpointer occured, so I tried to find out the commit which is related
to our problem. 

Since version 9.0.60 the problem occurs and is still a problem with 9.0.64.
Probably introduced with commit
https://github.com/apache/tomcat/commit/d4050b4cc979302c5f5cc9237609e1564fa367c4
?

The EL behaviour has changed for string.concat() with null values. Probably the
new behaviour is more correct than before, but we are not sure yet if the new
behaviour is expected. So could you please check and let us know, if this is a
bug or desired behaviour?


How to reproduce:
--- Our usecase was like xhtml has an <ui:include src="someother.xhtml> and
sometimes <ui:param name="foo" value="ABC" /> is passed, sometimes foo is
null/not added via ui:param. 
In someother.xhtml we had the following EL: <p:column
id="#{'columnId'.concat(foo)}"
---

But it can be tested with a simple xhtml and 
<h:outputText value="#{'sometext'.concat(variableNotExisting)}" />


With tomcat 9.0.59 passing null resulted in 'sometext'.concat('') [empty
string] -> 'sometext'.

With tomcat 9.0.60 passing null results in 'sometext'.concat(null) which leads
to an Nullpointer in java String.concat()

Using 'sometext' += foo would be nullsafe, but produces 'sometextnull'.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to