You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tiles.apache.org by "Antonio Petrelli (JIRA)" <ji...@apache.org> on 2008/08/01 08:37:08 UTC
[jira] Commented: (TILES-286) TilesAccess won't set context
attributes in Jetty 5.1.10
[ https://issues.apache.org/struts/browse/TILES-286?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44508#action_44508 ]
Antonio Petrelli commented on TILES-286:
----------------------------------------
Tiles 2.0.7 will be essentially a bug-fixing release of Tiles 2.0.6, so IMO I think that, if you use the snapshot of Tiles 2.0.7, you will have a *better* and *more stable* release than Tiles 2.0.6.
> TilesAccess won't set context attributes in Jetty 5.1.10
> --------------------------------------------------------
>
> Key: TILES-286
> URL: https://issues.apache.org/struts/browse/TILES-286
> Project: Tiles
> Issue Type: Bug
> Components: tiles-api, tiles-core, tiles-test
> Affects Versions: 2.0.6
> Environment: Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04), Jetty 5.1.11, SUSE Linux Enterprise 10, 64 bit
> Reporter: Dmitry
> Assignee: Antonio Petrelli
> Fix For: 2.0.7
>
>
> The code for setting a context attribute in the TilesAccess class is as follows:
> private static void setAttribute(Object context, String name, Object value)
> throws TilesException {
> try {
> Class<?> contextClass = context.getClass();
> Method attrMethod = contextClass.getMethod("setAttribute", String.class, Object.class);
> attrMethod.invoke(context, name, value);
> } catch (Exception e) {
> throw new TilesException("Unable to set attribute for specified context: '" + context + "'");
> }
> }
> The line
> attrMethod.invoke(context, name, value);
> throws an IllegalAccessException if Tiles are used inside a Jetty 5.1.11. This happens because Jetty's implementation of the javax.servlet.ServletContext interface is an inner class without the public modifier.
> I.e., Jetty's org.mortbay.jetty.servlet.ServletHandler$Context is not public although it's setAttribute() is.
> The same applies to getAttribute() and removeAttribute() methods.
> One of the possible solutions is to reflect the method not only from the class itself, but from all its superclasses and interfaces as well.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.