Hi, folks,
The conclusion is that J2EE 1.4 upgrade matters! Because we used <c:if>
tag in a way
that shows the difference of core tag library implementation. Take a
look at the following
JSP snippet.
<c:if test="${!empty ConfigurationsOwned}">
<table id="ProjectOwnedTable" border="1">
.....
<c:forEach var="configuration" items="${ConfigurationsOwned}">
<tr><td><c:out value="${configuration}"/> </td></tr>
</c:forEach>
<c:forEach var="project" items="${NoConfigurationsOwned}">
<tr><td><c:out value="${project}"/> </td></tr>
</c:forEach>
</table>
</c:if>
Let's assume ConfigurationsOwned is an instance of HashSet() but it has
no any element inside, and NoConfigurationsOwned is also an instance of
HashSet() with a string value "The Incredible". This code will yield
difference
HTML code due to tag library implementation differences.
Before the upgrade, it will yield:
<table id="ProjectOwnedTable" border="1">
<tr><td>The incredible</td></tr>
</table>
After the upgrade, it will yield nothing. This is the reason that
hackyApp_Pri failed
last night. In the old tag library implementation, a collection is not
empty as along as
it is instantiated. But the new implementation checks size of the
collection as well.
Fortunately, there is no big change in Hackystat. We only need to change
one JSP
file in hackyApp_Pri so far. Please be aware that tag library changed
the implementation
of emptiness check.
Cheers,
Hongbing
(Cedric) Qin ZHANG wrote:
There is no reason to believe that the update to J2EE 1.4 is the cause
of the junit failures we are experiencing. According to Hongbing, it's
just a coincidence. His recent commit to ProjectManager fixes the
problem. Hongbing has the details.
Thanks
Cedric
Philip Johnson wrote:
Hi Cedric,
Can you update me on why the conversion to 1.4 has led to junit
failures? What has changed?
Thanks!
Philip