[jboss-jira] [JBoss JIRA] (WFLY-4023) javax.el.ImportHandler#importClass & #importPackage doesn't import WEB-INF/classes
Patrick Garner (JIRA)
issues at jboss.org
Tue Oct 28 09:39:35 EDT 2014
[ https://issues.jboss.org/browse/WFLY-4023?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Patrick Garner updated WFLY-4023:
---------------------------------
Steps to Reproduce:
@ManagedBean(eager=true)
@ApplicationScoped
public class EnumConfig {
@PostConstruct
public void init() {
System.out.println("Testing 123...");
FacesContext.getCurrentInstance().getApplication().addELContextListener(
new ELContextListener() {
@Override
public void contextCreated(ELContextEvent event) {
System.out.println("Testing 456...");
event.getELContext().getImportHandler().importClass(
"foo.bar.business.model.enumeration.YesOrNo");
//importHandler.importPackage(
// "foo.bar.business.model.enumeration.preference");
Class<?> clazz = importHandler.resolveClass("YesOrNo");
System.out.println("clazz = " + clazz);
}
}
);
}
}
21:26:48,703 INFO [stdout] (MSC service thread 1-4) Testing 123...
21:39:11,976 INFO [stdout] (default task-9) Testing 456...
21:39:11,976 INFO [stdout] (default task-18) clazz = null
importHandler = {javax.el.ImportHandler at 15909}
classNameMap = {java.util.HashMap at 15910} size = 1
[0] = {java.util.HashMap$Node at 15923}"YesOrNo" -> "foo.bar.business.model.enumeration.YesOrNo"
classMap = {java.util.HashMap at 15911} size = 0
staticNameMap = {java.util.HashMap at 15912} size = 0
notAClass = {java.util.HashSet at 15913} size = 1
[0] = {java.lang.String at 15030}"foo.bar.business.model.enumeration.YesOrNo"
packages = {java.util.ArrayList at 15914} size = 1
[0] = {java.lang.String at 15926}"java.lang"
was:
@ManagedBean(eager=true)
@ApplicationScoped
public class EnumConfig {
@PostConstruct
public void init() {
System.out.println("Testing 123...");
FacesContext.getCurrentInstance().getApplication().addELContextListener(
new ELContextListener() {
@Override
public void contextCreated(ELContextEvent event) {
System.out.println("Testing 456...");
event.getELContext().getImportHandler().importClass(
"foo.bar.business.model.enumeration.YesOrNo");
//importHandler.importPackage(
// "foo.bar.business.model.enumeration.preference");
Class<?> clazz = importHandler.resolveClass("YesOrNo");
System.out.println("clazz = " + clazz);
}
}
);
}
}
21:26:48,703 INFO [stdout] (MSC service thread 1-4) Testing 123...
21:39:11,976 INFO [stdout] (default task-9) Testing 456...
21:39:11,976 INFO [stdout] (default task-18) clazz = null
importHandler = {javax.el.ImportHandler at 15909}
classNameMap = {java.util.HashMap at 15910} size = 1
[0] = {java.util.HashMap$Node at 15923}"YesOrNo" -> "foo.bar.business.model.enumeration.YesOrNo"
classMap = {java.util.HashMap at 15911} size = 0
staticNameMap = {java.util.HashMap at 15912} size = 0
notAClass = {java.util.HashSet at 15913} size = 1
[0] = {java.lang.String at 15030}"foo.bar.business.model.enumeration.YesOrNo"
packages = {java.util.ArrayList at 15914} size = 1
[0] = {java.lang.String at 15926}"java.lang"
> javax.el.ImportHandler#importClass & #importPackage doesn't import WEB-INF/classes
> ----------------------------------------------------------------------------------
>
> Key: WFLY-4023
> URL: https://issues.jboss.org/browse/WFLY-4023
> Project: WildFly
> Issue Type: Bug
> Components: JSF
> Affects Versions: 8.1.0.Final
> Environment: Win7, Wildfly 8.1.0.Final
> Reporter: Patrick Garner
> Assignee: Farah Juma
> Original Estimate: 4 hours
> Remaining Estimate: 4 hours
>
> ImportHandler is not importing classes in WEB-INF/classes and, thus, developers are unable to import classes into the EL evaluation environment per EL 3.0 spec. section 1.22.2 "Imports of Packages, Classes, and Static Fields"
> Here's the ImportHandler relevant code (https://github.com/jboss/jboss-el-api_spec/blob/master/src/main/java/javax/el/ImportHandler.java#L176)
> private Class<?> getClassFor(String className) {
> if (!notAClass.contains(className)) {
> try {
> return Class.forName(className, false, getClass().getClassLoader());
> } catch (ClassNotFoundException ex) {
> notAClass.add(className);
> }
> }
> return null;
> }
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)
More information about the jboss-jira
mailing list