We have precompiled tags which were compiled under 5.5.35 and don't work under 
7.0.34. From my investigation, it appears it's due to an interface change in 
JspSourceDependent. The return type of getDependants() changed. For us the 
solution isn't as simple as recompiling for two reasons: we have shipping 
products which plug into our tomcat based platform and some such products 
target multiple versions of our platform, some of which are 5.5 based and some 
are 7.0 based.

Is this a bug? Shouldn't there be backward compatibility for precompiled tags? 
Is there anything that can be done to get such existing tags working? I'm 
looking for any guidance on how to move forward in addressing this issue.

Here is an example tag that exhibits the problem:

<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"; %>
<%@tag dynamic-attributes="dynamicAttributes" %>
<%@attribute name="id" required="true" rtexprvalue="true" %>

<div id="${id}">
    <table>
    <c:forEach var="attribute" items="${dynamicAttributes}">
    <tr><th>${attribute.key}</th><td>${attribute.value}</td></tr>
    </c:forEach>
    </table>
</div>

When referenced in a precompiled jsp like this...

                <sample:javafree id="javafree.tag" randomkey="randomvalue"
                                 anotherkey="anothervalue" />

...and all compiled against 7.0 but used in 7.0 (or 5.5/5.5), the resulting 
html looks like this:

<div id="javafree.tag">
    <table>

    <tbody><tr><th>randomkey</th><td>randomvalue</td></tr>

    <tr><th>anotherkey</th><td>anothervalue</td></tr>

    </tbody></table>
</div>

However when compiled against 5.5 and used in 7.0, the resulting html looks 
like this:

<div id="">
    <table>

    </table>
</div>

Reply via email to