IBM Support

PI26149: FILENOTFOUNDEXCEPTIONS WHEN FILE PATHS INCLUDE SPACES.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • If a space or other whitespace characters exist in the path to
    ZIP or JAR files that are loaded by WebSphere Liberty, it is
    possble that the user may see class loading failures where the
    root cause is a FileNotFoundException similar to this:
    .
    java.io.FileNotFoundException:
    C:\Users\IBM_ADMIN\Documents\Liberty\WAS
    2014\wlp-8.5.5.3\wlp\usr\servers\TestServer\workarea\org.eclipse
    .osgi\85\data\cache\com.ibm.ws.app.manager_74\.cache\lib\AppBase
    Lite.jar (The system cannot find the path specified.)
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:230)
    at java.util.zip.ZipFile.<init>(ZipFile.java:160)
    at java.util.zip.ZipFile.<init>(ZipFile.java:174)
    at com.ibm.ws.artifact.zip.internal.Utils$7.run(Utils.java:120)
    at com.ibm.ws.artifact.zip.internal.Utils$7.run(Utils.java:117)
    at
    java.security.AccessController.doPrivileged(AccessController.jav
    a:330)
    at
    com.ibm.ws.artifact.zip.internal.Utils.newZipFile(Utils.java:117
    )
    at
    com.ibm.ws.artifact.zip.cache.internal.ZipFileHandleImpl.open(Zi
    pFileHandleImpl.java:59)
    at
    com.ibm.ws.artifact.url.internal.WSJarURLStreamHandler$WSJarURLC
    onnectionImpl.getInputStreamInternal(WSJarURLStreamHandler.java:
    276)
    at
    com.ibm.ws.artifact.url.internal.WSJarURLStreamHandler$WSJarURLC
    onnectionImpl.getInputStream(WSJarURLStreamHandler.java:263)
    at java.net.URL.openStream(URL.java:1049)
    at
    com.ibm.ws.anno.classsource.internal.ClassSourceImpl_ClassLoader
    .openResourceStream(ClassSourceImpl_ClassLoader.java:106)
    at
    com.ibm.ws.anno.classsource.internal.ClassSourceImpl.openClassSt
    ream(ClassSourceImpl.java:320)
    at
    com.ibm.ws.anno.classsource.internal.ClassSourceImpl_Aggregate.o
    penResourceStream(ClassSourceImpl_Aggregate.java:638)
    at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.scanNewClass(InfoSto
    reImpl.java:184)
    at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.scanClass(InfoStoreI
    mpl.java:154)
    at
    com.ibm.ws.anno.info.internal.ClassInfoCache.scanClass(ClassInfo
    Cache.java:159)
    at
    com.ibm.ws.anno.info.internal.ClassInfoCache.resolveClassInfo(Cl
    assInfoCache.java:1078)
    at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.resolveClassInfo(Inf
    oStoreImpl.java:376)
    at
    com.ibm.ws.anno.info.internal.DelayedClassInfo.getClassInfo(Dela
    yedClassInfo.java:130)
    at
    com.ibm.ws.anno.info.internal.DelayedClassInfo.getAnnotations(De
    layedClassInfo.java:476)
    at
    com.ibm.ws.anno.info.internal.NonDelayedClassInfo.getAnnotations
    (NonDelayedClassInfo.java:377)
    at
    com.ibm.ws.anno.info.internal.InfoImpl.isAnnotationPresent(InfoI
    mpl.java:211)
    at
    com.ibm.ws.anno.info.internal.ClassInfoCache.addClassInfo(ClassI
    nfoCache.java:950)
    at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.addClassInfo(InfoSto
    reImpl.java:366)
    at
    com.ibm.ws.anno.info.internal.InfoVisitor.visitEndClass(InfoVisi
    tor.java:564)
    at
    com.ibm.ws.anno.info.internal.InfoVisitor.visitEnd(InfoVisitor.j
    ava:536)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.scanNewClass(InfoSto
    reImpl.java:267)
    at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.scanNewClass(InfoSto
    reImpl.java:199)
    at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.scanClass(InfoStoreI
    mpl.java:154)
    at
    com.ibm.ws.anno.info.internal.ClassInfoCache.scanClass(ClassInfo
    Cache.java:159)
    at
    com.ibm.ws.anno.info.internal.ClassInfoCache.resolveClassInfo(Cl
    assInfoCache.java:1078)
    at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.resolveClassInfo(Inf
    oStoreImpl.java:376)
    at
    com.ibm.ws.anno.info.internal.DelayedClassInfo.getClassInfo(Dela
    yedClassInfo.java:130)
    at
    com.ibm.ws.anno.info.internal.DelayedClassInfo.getAnnotation(Del
    ayedClassInfo.java:486)
    at
    com.ibm.ws.anno.info.internal.InfoImpl.getAnnotation(InfoImpl.ja
    va:246)
    at
    com.ibm.ws.anno.info.internal.InfoImpl.getAnnotation(InfoImpl.ja
    va:29)
    at
    com.ibm.ws.ejbcontainer.osgi.internal.ModuleInitDataFactory.merg
    eComponentDefiningAnnotations(ModuleInitDataFactory.java:644)
    at
    com.ibm.ws.ejbcontainer.osgi.internal.ModuleInitDataFactory.crea
    teModuleInitData(ModuleInitDataFactory.java:440)
    at
    com.ibm.ws.ejbcontainer.osgi.internal.ModuleInitDataAdapter.crea
    teModuleInitData(ModuleInitDataAdapter.java:131)
    at
    com.ibm.ws.ejbcontainer.osgi.internal.ModuleInitDataAdapter.adap
    t(ModuleInitDataAdapter.java:95)
    at
    com.ibm.ws.ejbcontainer.osgi.internal.ModuleInitDataAdapter.adap
    t(ModuleInitDataAdapter.java:38)
    at
    com.ibm.ws.adaptable.module.internal.AdapterFactoryServiceImpl.a
    dapt(AdapterFactoryServiceImpl.java:189)
    at
    com.ibm.ws.adaptable.module.internal.AdaptableContainerImpl.adap
    t(AdaptableContainerImpl.java:171)
    at
    com.ibm.ws.adaptable.module.internal.InterpretedContainerImpl.ad
    apt(InterpretedContainerImpl.java:204)
    at
    org.apache.webbeans.ejb.WSEjbPlugin.setEJBEndpointsInAppMetaData
    (WSEjbPlugin.java:96)
    at
    com.ibm.ws.webbeans.ejb.EJBEndpointServiceImpl.setEJBEndpoints(E
    JBEndpointServiceImpl.java:32)
    at
    com.ibm.ws.webbeans.services.CDIComponentImpl.applicationStartin
    g(CDIComponentImpl.java:645)
    at
    com.ibm.ws.container.service.state.internal.ApplicationStateMana
    ger.fireStarting(ApplicationStateManager.java:29)
    at
    com.ibm.ws.container.service.state.internal.StateChangeServiceIm
    pl.fireApplicationStarting(StateChangeServiceImpl.java:51)
    at
    com.ibm.ws.app.manager.module.internal.DeployedAppInfoBase.preDe
    ployApp(DeployedAppInfoBase.java:381)
    at
    com.ibm.ws.app.manager.module.internal.DeployedAppInfoBase.deplo
    yApp(DeployedAppInfoBase.java:408)
    at
    com.ibm.ws.app.manager.ear.internal.EARApplicationHandlerImpl.in
    stall(EARApplicationHandlerImpl.java:82)
    at
    com.ibm.ws.app.manager.internal.statemachine.StartAction.execute
    (StartAction.java:131)
    at
    com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMac
    hineImpl.enterState(ApplicationStateMachineImpl.java:1153)
    at
    com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMac
    hineImpl.run(ApplicationStateMachineImpl.java:758)
    at
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExec
    utor.java:1176)
    at
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExe
    cutor.java:641)
    at java.lang.Thread.run(Thread.java:853)
    .
    This exception will be logged in FFDC.  It occurs because the
    URL to the ZIP or JAR file is incorrectly encoded twice, but
    only decoded once.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All WebSphere Application Server Liberty    *
    *                  profile users who have spaces in the file   *
    *                  paths.                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: FileNotFoundExceptions when file paths  *
    *                      include spaces.                         *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    If a space or other whitespace characters exist in the path to
    ZIP or JAR files that are loaded by Liberty profile, it is
    possible that you may see class loading failures where the root
    cause is a FileNotFoundException similar to
    this:
    
    java.io.FileNotFoundException:
    C:\Users\IBM_ADMIN\Documents\Liberty\WAS 2014\wlp-
    8.5.5.3\wlp\usr\servers\TestServer\workarea\org.eclipse.osgi\85\
    data\cache\com.ibm.ws.app.manager_74\.cache\lib\AppBaseLite.jar
    (The system cannot find the path specified.)
     at
    java.util.zip.ZipFile.open(Native Method)
     at
    java.util.zip.ZipFile.<init>(ZipFile.java:230)
     at
    java.util.zip.ZipFile.<init>(ZipFile.java:160)
     at
    java.util.zip.ZipFile.<init>(ZipFile.java:174)
     at
    com.ibm.ws.artifact.zip.internal.Utils$7.run(Utils.java:120)
     at
    com.ibm.ws.artifact.zip.internal.Utils$7.run(Utils.java:117)
     at
    java.security.AccessController.doPrivileged(AccessController.jav
    a:330)
     at
    com.ibm.ws.artifact.zip.internal.Utils.newZipFile(Utils.java:117
    )
     at
    com.ibm.ws.artifact.zip.cache.internal.ZipFileHandleImpl.open(Zi
    pFileHandleImpl.java:59)
     at
    com.ibm.ws.artifact.url.internal.WSJarURLStreamHandler$WSJarURLC
    onnectionImpl.getInputStreamInternal(WSJarURLStreamHandler.java:
    276)
     at
    com.ibm.ws.artifact.url.internal.WSJarURLStreamHandler$WSJarURLC
    onnectionImpl.getInputStream(WSJarURLStreamHandler.java:263)
     at
    java.net.URL.openStream(URL.java:1049)
     at
    com.ibm.ws.anno.classsource.internal.ClassSourceImpl_ClassLoader
    .openResourceStream(ClassSourceImpl_ClassLoader.java:106)
     at
    com.ibm.ws.anno.classsource.internal.ClassSourceImpl.openClassSt
    ream(ClassSourceImpl.java:320)
     at
    com.ibm.ws.anno.classsource.internal.ClassSourceImpl_Aggregate.o
    penResourceStream(ClassSourceImpl_Aggregate.java:638)
     at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.scanNewClass(InfoSto
    reImpl.java:184)
     at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.scanClass(InfoStoreI
    mpl.java:154)
     at
    com.ibm.ws.anno.info.internal.ClassInfoCache.scanClass(ClassInfo
    Cache.java:159)
     at
    com.ibm.ws.anno.info.internal.ClassInfoCache.resolveClassInfo(Cl
    assInfoCache.java:1078)
     at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.resolveClassInfo(Inf
    oStoreImpl.java:376)
     at
    com.ibm.ws.anno.info.internal.DelayedClassInfo.getClassInfo(Dela
    yedClassInfo.java:130)
     at
    com.ibm.ws.anno.info.internal.DelayedClassInfo.getAnnotations(De
    layedClassInfo.java:476)
     at
    com.ibm.ws.anno.info.internal.NonDelayedClassInfo.getAnnotations
    (NonDelayedClassInfo.java:377)
     at
    com.ibm.ws.anno.info.internal.InfoImpl.isAnnotationPresent(InfoI
    mpl.java:211)
     at
    com.ibm.ws.anno.info.internal.ClassInfoCache.addClassInfo(ClassI
    nfoCache.java:950)
     at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.addClassInfo(InfoSto
    reImpl.java:366)
     at
    com.ibm.ws.anno.info.internal.InfoVisitor.visitEndClass(InfoVisi
    tor.java:564)
     at
    com.ibm.ws.anno.info.internal.InfoVisitor.visitEnd(InfoVisitor.j
    ava:536)
     at org.objectweb.asm.ClassReader.accept(Unknown
    Source)
     at org.objectweb.asm.ClassReader.accept(Unknown
    Source)
     at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.scanNewClass(InfoSto
    reImpl.java:267)
     at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.scanNewClass(InfoSto
    reImpl.java:199)
     at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.scanClass(InfoStoreI
    mpl.java:154)
     at
    com.ibm.ws.anno.info.internal.ClassInfoCache.scanClass(ClassInfo
    Cache.java:159)
     at
    com.ibm.ws.anno.info.internal.ClassInfoCache.resolveClassInfo(Cl
    assInfoCache.java:1078)
     at
    com.ibm.ws.anno.info.internal.InfoStoreImpl.resolveClassInfo(Inf
    oStoreImpl.java:376)
     at
    com.ibm.ws.anno.info.internal.DelayedClassInfo.getClassInfo(Dela
    yedClassInfo.java:130)
     at
    com.ibm.ws.anno.info.internal.DelayedClassInfo.getAnnotation(Del
    ayedClassInfo.java:486)
     at
    com.ibm.ws.anno.info.internal.InfoImpl.getAnnotation(InfoImpl.ja
    va:246)
     at
    com.ibm.ws.anno.info.internal.InfoImpl.getAnnotation(InfoImpl.ja
    va:29)
     at
    com.ibm.ws.ejbcontainer.osgi.internal.ModuleInitDataFactory.merg
    eComponentDefiningAnnotations(ModuleInitDataFactory.java:644)
    
    at
    com.ibm.ws.ejbcontainer.osgi.internal.ModuleInitDataFactory.crea
    teModuleInitData(ModuleInitDataFactory.java:440)
     at
    com.ibm.ws.ejbcontainer.osgi.internal.ModuleInitDataAdapter.crea
    teModuleInitData(ModuleInitDataAdapter.java:131)
     at
    com.ibm.ws.ejbcontainer.osgi.internal.ModuleInitDataAdapter.adap
    t(ModuleInitDataAdapter.java:95)
     at
    com.ibm.ws.ejbcontainer.osgi.internal.ModuleInitDataAdapter.adap
    t(ModuleInitDataAdapter.java:38)
     at
    com.ibm.ws.adaptable.module.internal.AdapterFactoryServiceImpl.a
    dapt(AdapterFactoryServiceImpl.java:189)
     at
    com.ibm.ws.adaptable.module.internal.AdaptableContainerImpl.adap
    t(AdaptableContainerImpl.java:171)
     at
    com.ibm.ws.adaptable.module.internal.InterpretedContainerImpl.ad
    apt(InterpretedContainerImpl.java:204)
     at
    org.apache.webbeans.ejb.WSEjbPlugin.setEJBEndpointsInAppMetaData
    (WSEjbPlugin.java:96)
     at
    com.ibm.ws.webbeans.ejb.EJBEndpointServiceImpl.setEJBEndpoints(E
    JBEndpointServiceImpl.java:32)
     at
    com.ibm.ws.webbeans.services.CDIComponentImpl.applicationStartin
    g(CDIComponentImpl.java:645)
     at
    com.ibm.ws.container.service.state.internal.ApplicationStateMana
    ger.fireStarting(ApplicationStateManager.java:29)
     at
    com.ibm.ws.container.service.state.internal.StateChangeServiceIm
    pl.fireApplicationStarting(StateChangeServiceImpl.java:51)
     at
    com.ibm.ws.app.manager.module.internal.DeployedAppInfoBase.preDe
    ployApp(DeployedAppInfoBase.java:381)
     at
    com.ibm.ws.app.manager.module.internal.DeployedAppInfoBase.deplo
    yApp(DeployedAppInfoBase.java:408)
     at
    com.ibm.ws.app.manager.ear.internal.EARApplicationHandlerImpl.in
    stall(EARApplicationHandlerImpl.java:82)
     at
    com.ibm.ws.app.manager.internal.statemachine.StartAction.execute
    (StartAction.java:131)
     at
    com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMac
    hineImpl.enterState(ApplicationStateMachineImpl.java:1153)
     at
    com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMac
    hineImpl.run(ApplicationStateMachineImpl.java:758)
     at
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExec
    utor.java:1176)
     at
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExe
    cutor.java:641)
     at java.lang.Thread.run(Thread.java:853)
    This exception will be logged in FFDC.  It occurs because the
    URL to the ZIP or JAR file is incorrectly encoded twice, but
    only decoded once.
    

Problem conclusion

  • The fix for this APAR ensures that the URL is only encoded once.
    That allows for whitespace characters to be preserved correctly
    in the WSJAR URL.
    
    The fix for this APAR is currently targeted
    for inclusion in fix pack 8.5.5.4.  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

    PI26149

  • Reported component name

    WAS LIBERTY COR

  • Reported component ID

    5725L2900

  • Reported release

    855

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2014-09-22

  • Closed date

    2014-10-17

  • Last modified date

    2014-10-17

  • 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

    WAS LIBERTY COR

  • Fixed component ID

    5725L2900

Applicable component levels

  • R855 PSY

       UP

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

Document Information

Modified date:
28 April 2022