[ 
https://issues.apache.org/struts/browse/TILES-286?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44505#action_44505
 ] 

Larry Edelstein commented on TILES-286:
---------------------------------------

Could I get a patch?  It's a showstopper issue for me, as I posted in the 
duplicate bug.  I often launch my app in Jetty.  I'd rather get a patch that 
modify the code myself, although I can do that also.

> 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.

Reply via email to