Excellent work by both Cedric who did the original upgrade and Hongbing who found this
very subtle change in behavior!
With any luck, next week will be quite a bit more "stable" than the last few!
Cheers,
Philip
--On Friday, October 06, 2006 12:00 PM -1000 Hongbing Kou <[EMAIL PROTECTED]>
wrote:
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