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

Reply via email to