Uploaded image for project: 'OpenWebBeans'
  1. OpenWebBeans
  2. OWB-616

javax.el.ExpressionFactory has final methods! CDI doesn't allow that. - Test on final **PRIVATE** methods too?

Bulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersConvert to sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment Visibility
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 1.0.0
    • 1.1.2
    • Java EE Integration
    • IBM WebSphere Application Server 8.0.0

    Description

      When implementing seam-solder on WAS 8.0 one gets the following exception:

      javax.el.ExpressionFactory has final methods! CDI doesn't allow that.
      at org.apache.webbeans.util.InjectionExceptionUtils.throwUnproxyableResolutionException(InjectionExceptionUtils.java:39)
      at org.apache.webbeans.util.WebBeansUtil.checkUnproxiableApiType(WebBeansUtil.java:2084)
      at org.apache.webbeans.config.DefinitionUtil.createProducerComponent(DefinitionUtil.java:688)
      at org.apache.webbeans.config.DefinitionUtil.createProducerComponents(DefinitionUtil.java:652)
      at org.apache.webbeans.config.DefinitionUtil.defineProducerMethods(DefinitionUtil.java:625)
      at org.apache.webbeans.component.creation.AbstractInjectedTargetBeanCreator.defineProducerMethods(AbstractInjectedTargetBeanCreator.java:142)
      at org.apache.webbeans.util.WebBeansUtil.defineManagedBean(WebBeansUtil.java:3050)
      at org.apache.webbeans.config.BeansDeployer.defineManagedBean(BeansDeployer.java:881)
      at org.apache.webbeans.config.BeansDeployer.deploySingleAnnotatedType(BeansDeployer.java:536)
      at org.apache.webbeans.config.BeansDeployer.deployFromClassPath(BeansDeployer.java:482)
      at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:171)
      at org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication(AbstractLifeCycle.java:124)
      at org.apache.webbeans.web.lifecycle.WebContainerLifecycle.startApplication(WebContainerLifecycle.java:78)
      at com.ibm.ws.webbeans.common.CommonLifeCycle.startApplication(CommonLifeCycle.java:106)
      at com.ibm.ws.webbeans.services.JCDIServletContainerInitializer.onStartup(JCDIServletContainerInitializer.java:85)
      at com.ibm.ws.webcontainer.webapp.WebAppImpl.initializeServletContainerInitializers(WebAppImpl.java:609)
      at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:405)
      at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)
      at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169)

      It turns out, that the class javax.el.ExpressionFactory shipped with the IBM Application Server contains a private final method called 'getClassNameSysProp'. This is the method org.apache.webbeans.util.WebBeansUtil.checkUnproxiableApiType() respectively ClassUtil.isFinal() complains about.

      Question here is: Is CD really preventing you to define private final methods or should this be reduced to public methods only?

      Thanks for clarification.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            struberg Mark Struberg
            bardioc Heiko Kopp
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment