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.