IBM Support

PI63621: SINGLETON BEANS WHICH ARE CREATED FROM ANNOTATIONS MAY BE INCORRECTLY MARKED AS LOCAL BEANS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Singleton beans which are created from annotations may be
    incorrectly marked as local beans.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: The processing of a singleton bean      *
    *                      which is defined through annotations    *
    *                      incorrectly marks the singleton bean    *
    *                      as a local bean.                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The processing of a singleton bean which is defined through
    annotations incorrectly marks the singleton bean as a local
    bean.
    The problem can be be detected by reviewing the metadata
    generated for the bean. Metadata for an EJB JAR file,
    including metadata which is obtained from annotations, is
    written to the META-INF/ejb-jar_merged.xml file.
    The file is stored in a profile specific folder for the EJB
    JAR file, for example:
    WAS_HOME/profiles/PROFILE_NAME/config/cells/CELL_NAME/applicatio
    ns/
    APPLICATION_NAME.ear/deployments/
    APPLICATION_NAME/EJBJAR_NAME.jar/
    META-INF/ejb-jar_merged.xml
    For example, for the following singleton bean:
    @Singleton
    @Local(LocalBusinessInterface.class)
    @Remote(RemoteBusinessInterface.class)
    public class AnnotationSingletonBean {
    @PostConstruct
    public void postConstruct() {
    }
    @PreDestroy
    public void preDestroy() {
    }
    }
    The following incorrect metadata for the single bean is
    written:
    <session>
    <ejb-name>AnnotationSingletonBean</ejb-name>
    <business-
    local>suite.r90.ejb32.ejbendpoints.content.ejb.LocalBu
    sinessInterface</business-local>
    <business-
    remote>suite.r90.ejb32.ejbendpoints.content.ejb.Remote
    BusinessInterface</business-remote>
    <ejb-
    class>suite.r90.ejb32.ejbendpoints.content.ejb.AnnotationSi
    ngletonBean</ejb-class>
    <session-type>Singleton</session-type>
    <concurrency-management-type>Container</concurrency-management-
    t
    ype>
    <local-bean/>
    <post-construct>
    <lifecycle-callback-
    class>suite.r90.ejb32.ejbendpoints.content.e
    jb.AnnotationSingletonBean</lifecycle-callback-class>
    <lifecycle-callback-method>postConstruct</lifecycle-callback-
    met
    hod>
    </post-construct>
    <pre-destroy>
    <lifecycle-callback-
    class>suite.r90.ejb32.ejbendpoints.content.e
    jb.AnnotationSingletonBean</lifecycle-callback-class>
    <lifecycle-callback-method>preDestroy</lifecycle-callback-
    method
    >
    </pre-destroy>
    </session>
    The metadata is correct except for the <local-bean/> element.
    The <local-bean/> element should not be present for this bean.
    Because this singleton bean does not have an @LocalBean
    annotation and does have @Local and @Remote annotations, the
    <local-bean/> element should not have been added. The
    <local-bean/> element should only be added when the bean has
    no other endpoint.
    A bean should not be marked as a local bean if at least one
    endpoint is specified for the bean.
    An endpoint for a bean can be specified through a deployment
    descriptor, by using an annotation supplied directly on the
    bean class, or specified by using an annotation supplied on an
    interface implemented by the bean class.
    An endpoint for a bean is specified as a local endpoint, as a
    remote endpoint, as a local home endpoint, as a remote home
    endpoint, or as a web service endpoint.
    More than one type of endpoint can be specified.
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    PI63621

  • Reported component name

    WEBSPHERE APP S

  • Reported component ID

    5724J0800

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-06-07

  • Closed date

    2016-06-24

  • Last modified date

    2016-08-10

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    WEBSPHERE APP S

  • Fixed component ID

    5724J0800

Applicable component levels

  • R900 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud \u0026 Data Platform"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"900","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
14 October 2021