[ https://issues.apache.org/jira/browse/TOMEE-1205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Gumbrecht resolved TOMEE-1205. ----------------------------------- Resolution: Fixed Assignee: Romain Manni-Bucau > TomEE webprofile 1.6.0.1 and 1.6.0.2 breaks java subtyping > ---------------------------------------------------------- > > Key: TOMEE-1205 > URL: https://issues.apache.org/jira/browse/TOMEE-1205 > Project: TomEE > Issue Type: Bug > Affects Versions: 1.7.0, 1.6.0.1, 1.6.0.2 > Environment: Windows 7 64 Bit > java version "1.7.0_21" > Java(TM) SE Runtime Environment (build 1.7.0_21-b11) > Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode) > 1.6.0.1 webprofile > 1.6.0.2 webprofile > Reporter: Patrick Pekczynski > Assignee: Romain Manni-Bucau > Priority: Blocker > Fix For: 1.7.0 > > Attachments: JAVAEE-API-EL.patch, TOMEE-EL.patch, animaltest.war, > animaltest.zip > > > Since version 1.6.0.1 (including 1.6.0.2) (both webprofiles) in EL-expression > on XHTML-pages one can no longer provide a 'subclass' as argument to a method > with a method that takes a superclass as argument. > In 1.6.0 webprofile this worked without problems > Consider > a class > @Named > @RequestScoped > public class Zoo { > private List<Animal> animals; > public Zoo() { > this.animals = new ArrayList<>(); > this.animals.add(new Bird()); > this.animals.add(new Mammal()); > } > public List<Animal> getAnimals() { > return this.animals; > } > public String getName(Animal animal) { > return animal.getName(); > } > } > and a hierarchy > Bird extends Animal > Mammal extends Animal > when iterating over the list of animals [Bird, Mamal] on an XHTML page > calling zoo.getName(Bird) leads to an error stating > SEVERE: Servlet.service() for servlet [FacesServlet] in context with path > [/animaltest] threw exception [java.lang.NoSuchMethodException: > org.animal.Zoo$$OwbNormalScopeProxy0.getName(org.animal.Bird)] with root cause > java.lang.NoSuchMethodException: > org.animal.Zoo$$OwbNormalScopeProxy0.getName(org.animal.Bird) > at java.lang.Class.getMethod(Class.java:1624) > at javax.el.BeanELResolver.invoke(BeanELResolver.java:394) > at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:225) > at org.apache.el.parser.AstValue.getValue(AstValue.java:173) > at > org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184) > at > org.apache.webbeans.el22.WrappedValueExpression.getValue(WrappedValueExpression.java:70) > at > org.apache.myfaces.view.facelets.el.ELText$ELTextVariable.writeText(ELText.java:219) > However the EL expression should be aware of the method Zoo.getName(Animal) > that perfectly allows any subclass of Animal as an argument. > As this was working in 1.6.0 webprofile without problems I wonder what has > changes if "only" security updates have been applied... > Would be great if you can have a look at this. > Thanks and best regards, > Patrick -- This message was sent by Atlassian JIRA (v6.2#6252)