IBM Support

PI63621:<local-bean/> added incorrectly for annotation only singleton bean

Download


Abstract

The processing of a singleton bean which is defined through annotations incorrectly marks the singleton bean as a local bean.

Download Description

PI63621 resolves the following problem:

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:
None

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:
A code update was made which corrects the processing of
singleton beans.

The fix for this APAR is currently targeted for inclusion in
fix pack 9.0.0.1. Please refer to the Recommended Updates
page for delivery information:
http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980

Prerequisites

None

Installation Instructions

Please review the readme.txt for detailed installation instructions.

[{"INLabel":"V90 Readme","INLang":"US English","INSize":"5750","INURL":"ftp://public.dhe.ibm.com/software/websphere/appserv/support/fixes/PI63621/9.0.0.0/readme.txt"}]
On
[{"DNLabel":"9.0.0.0-WS-WAS-IFPI63621","DNDate":"06-24-2016","DNLang":"US English","DNSize":"261727","DNPlat":{"label":"AIX","code":"PF002"},"DNURL":"http://www-933.ibm.com/eserver/support/fixes/fixcentral/swgquickorder?fixes=9.0.0.0-WS-WAS-IFPI63621&productid=WebSphere%20Application%20Server&brandid=5","DNURL_FTP":null,"DDURL":null}]

Technical Support

Contact IBM Support using SR (http://www.ibm.com/software/support/probsub.html), visit the WebSphere Application Server support web site (http://www.ibm.com/software/webservers/appserv/was/support/), or contact 1-800-IBM-SERV (U.S. only).

[{"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"General","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF012","label":"IBM i"},{"code":"PF013","label":"Inspur K-UX"},{"code":"PF016","label":"Linux"},{"code":"PF022","label":"OS X"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"},{"code":"PF014","label":"iOS"},{"code":"PF035","label":"z\/OS"}],"Version":"9.0.0.0","Edition":"Base;Network Deployment","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg24042453