IBM Support

PM78019: NULL POINTER EXCEPTION RECEIVED DURING ANNOTATIONS PROCESSING.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A NullPointerException is received during annotations processing
    while updating a LRU (least recently used) cache of class
    information.
    
    [10/29/12 9:45:54:898 EDT] 0000003e annotations   E
    com.ibm.ws.amm.AnnotativeMetadataManagerImpl
    performMergeOperations
    CWWAM0001E: An exception occurred during annotation processing:
    {0}
                                     java.lang.NullPointerException
     at
    com.ibm.ws.amm.scan.util.info.impl.ClassInfoCache.makeFirst(Clas
    sInfoCache.java:1300)
     at
    com.ibm.ws.amm.scan.util.info.impl.ClassInfoCache.recordAccess(C
    lassInfoCache.java:1419)
     at
    com.ibm.ws.amm.scan.util.info.impl.InfoStoreImpl.recordAccess(In
    foStoreImpl.java:314)
     at
    com.ibm.ws.amm.scan.util.info.impl.DelayedClassInfo.getClassInfo
    (DelayedClassInfo.java:229)
     at
    com.ibm.ws.amm.scan.util.info.impl.DelayedClassInfo.getAllInterf
    aces(DelayedClassInfo.java:361)
     at
    com.ibm.ws.websvcs.annotations.amm.client.WSAmmUtils.isSuperInte
    rface(WSAmmUtils.java:319)
     at
    com.ibm.ws.websvcs.annotations.amm.client.WSAmmUtils.isAssignabl
    eFrom(WSAmmUtils.java:281)
     at
    com.ibm.ws.websvcs.annotations.amm.client.WSAmmUtils.isJAXRPCSer
    viceResource(WSAmmUtils.java:212)
     at
    com.ibm.ws.websvcs.annotations.amm.client.WSAmmUtils.isServiceRe
    source(WSAmmUtils.java:204)
     at
    com.ibm.ws.websvcs.annotations.amm.client.ServiceRefAbstractMerg
    eAction.doFieldLevelMerge(ServiceRefAbstractMergeAction.java:259
    )
     at
    com.ibm.ws.websvcs.annotations.amm.client.ServiceRefAbstractMerg
    eAction.merge(ServiceRefAbstractMergeAction.java:172)
     at
    com.ibm.ws.amm.AnnotativeMetadataManagerImpl.performMergeOperati
    ons(AnnotativeMetadataManagerImpl.java:472)
     at
    com.ibm.ws.amm.AnnotativeMetadataManagerImpl.merge(AnnotativeMet
    adataManagerImpl.java:269)
     at
    com.ibm.ws.amm.commonarchive.AnnotationsProcessorImpl.merge(Anno
    tationsProcessorImpl.java:132)
     at
    com.ibm.ws.amm.commonarchive.AnnotationsProcessorImpl.merge(Anno
    tationsProcessorImpl.java:64)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl
    .processEJBAnnotations(WARFileImpl.java:2523)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl
    .getEJBDeploymentDescriptor(WARFileImpl.java:2196)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl
    .getEJBDeploymentDescriptor(WARFileImpl.java:2021)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl
    .getEJBDeploymentDescriptor(WARFileImpl.java:2014)
     at
    com.ibm.ws.amm.merge.ejb.manager.EJBData.getDescriptor(EJBData.j
    ava:170)
     at
    com.ibm.ws.amm.merge.ejb.manager.EJBData.initEJBData(EJBData.jav
    a:104)
     at
    com.ibm.ws.amm.merge.ejb.manager.EJBDataManager.getEJBData(EJBDa
    taManager.java:85)
     at
    com.ibm.ws.amm.merge.ejb.BaseEJBMergeAction.isOverriden(BaseEJBM
    ergeAction.java:276)
     at
    com.ibm.ws.amm.merge.ejb.BaseEJBMergeAction.mergeFieldTargets(Ba
    seEJBMergeAction.java:239)
     at
    com.ibm.wsspi.amm.merge.AbstractMergeAction.merge(AbstractMergeA
    ction.java:132)
     at
    com.ibm.ws.amm.AnnotativeMetadataManagerImpl.performMergeOperati
    ons(AnnotativeMetadataManagerImpl.java:472)
     at
    com.ibm.ws.amm.AnnotativeMetadataManagerImpl.merge(AnnotativeMet
    adataManagerImpl.java:269)
     at
    com.ibm.ws.amm.commonarchive.AnnotationsProcessorImpl.merge(Anno
    tationsProcessorImpl.java:132)
     at
    com.ibm.ws.amm.commonarchive.AnnotationsProcessorImpl.merge(Anno
    tationsProcessorImpl.java:64)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl
    .processAnnotations(WARFileImpl.java:867)
     at
    com.ibm.ws.webfragmerger.WebFragMergerImpl.merge(WebFragMergerIm
    pl.java:495)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl
    .mergeAnnotationsAndFragments(WARFileImpl.java:813)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl
    .getDeploymentDescriptor(WARFileImpl.java:641)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl
    .getDeploymentDescriptor(WARFileImpl.java:360)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl
    .getDeploymentDescriptor(WARFileImpl.java:342)
     at
    com.ibm.etools.commonarchive.impl.WARFileImpl.getExtensions(WARF
    ileImpl.java:852)
     at
    com.ibm.etools.commonarchive.impl.WARFileImpl.getContextRoot(WAR
    FileImpl.java:1210)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.Ear50No
    DDImportStrategyImpl$1.getContextRoot(Ear50NoDDImportStrategyImp
    l.java:607)
     at
    org.eclipse.jst.j2ee.application.internal.impl.WebModuleImpl.get
    ContextRoot(WebModuleImpl.java:144)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.War25Ex
    portStrategyImpl.preSave(War25ExportStrategyImpl.java:164)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleFileI
    mpl.save(ModuleFileImpl.java:506)
     at
    org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ArchiveImpl
    .extractTo(ArchiveImpl.java:1153)
     at
    com.ibm.ws.websvcs.deployment.FileExplorerUtils.extractModuleFil
    e(FileExplorerUtils.java:157)
     at
    com.ibm.ws.websvcs.deployment.WARFileExplorer.explore(WARFileExp
    lorer.java:141)
     at
    com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.getLocatorsFromMo
    dule(WSModuleDescriptorImpl.java:1455)
     at
    com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.getClassDataObjec
    ts(WSModuleDescriptorImpl.java:1400)
     at
    com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.initDBCMap(WSModu
    leDescriptorImpl.java:2041)
     at
    com.ibm.ws.websvcs.desc.WSModuleDescriptorImpl.getDBCs(WSModuleD
    escriptorImpl.java:2494)
     at
    com.ibm.ws.websvcs.deploy.WSCacheWriter.writeModuleCache(WSCache
    Writer.java:520)
     at
    com.ibm.ws.websvcs.deploy.WSCacheWriter.writeApplicationCache(WS
    CacheWriter.java:226)
     at
    com.ibm.ws.websvcs.deploy.WSCacheWriter.writeApplicationCache(WS
    CacheWriter.java:151)
     at
    com.ibm.ws.websvcs.deploy.PersistentStorageInstallSaveTask.perfo
    rmTask(PersistentStorageInstallSaveTask.java:195)
     at
    com.ibm.ws.management.application.sync.AppBinaryProcessor$Expand
    App.expand(AppBinaryProcessor.java:1705)
     at
    com.ibm.ws.management.application.sync.AppBinaryProcessor$AppBin
    Thread.run(AppBinaryProcessor.java:1210)
     at java.lang.Thread.run(Thread.java:737)
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server deploying applications that contain  *
    *                  J2EE annotations                            *
    ****************************************************************
    * PROBLEM DESCRIPTION: NullPointerException occurs in          *
    *                      ClassInfoCache.makeFirst(NonDelayedClas *
    *                      sInfo) while manipulating a list of     *
    *                      objects.                                *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    During the annotation scan of a module, a ClassInfo object is
    created for each scanned class and maintained in several
    lists in ClassInfoCache.class.
    Two of these lists are managed together to prevent excessive
    memory use during the scan, a general list and one that is
    sorted by last reference. There are events that can cause a
    ClassInfo to be removed from these lists, and incorrect
    processing in this function is causing a ClassInfo to be
    removed from the sorted list but not the general list.
    Referencing a class results in the ClassInfo being moved to
    the beginning of the sorted list. When this process encounters
    a ClassInfo which is on one list but not the other, a
    NullPointerException can occur while manipulating the linked
    list pointers.
    

Problem conclusion

  • ClassInfoCache has been updated to correctly remove a
    ClassInfo from both lists during the removal operation, and to
    clear the back point when moving a ClassInfo to the front of
    the sorted list.
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 8.0.0.7 and the fixpack after 8.5.0.2.  Please refer
    to the Recommended Updates page for delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM78019

  • Reported component name

    WEBSPHERE APP S

  • Reported component ID

    5724J0800

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-11-28

  • Closed date

    2013-03-21

  • Last modified date

    2013-03-21

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

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

    PM82203

Fix information

  • Fixed component name

    WEBSPHERE APP S

  • Fixed component ID

    5724J0800

Applicable component levels

  • R800 PSY

       UP

  • R850 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
29 October 2021