WebSphere Commerce Version 7.0.0.6

Troubleshooting: Index building fails with exit code 2

When you attempt to build the WebSphere Commerce search index structure for a specific master catalog locally, the build fails.

Problem

The message BUILD failed is displayed in the console, and an exception message similar to the following example is in the WC_installdir/components/foundation/subcomponents/search/log/wc-search-index-setup.log:
March 20, 2012 4:14:14 com.ibm.commerce.search.indexsetup.SearchIndexSetupMain execute
INFO: The work of the generation process and execution ended at 2012-03-20 4:14:14
March 20, 2012 4:14:14 com.ibm.commerce.search.indexsetup.SearchIndexSetupMain logExitCode
INFO:
Program termination with exit code: 2.
The configuration of the search index ended with errors. Check the log file for more information

March 20, 2012 4:14:14 com.ibm.commerce.search.indexsetup.SearchIndexSetupMain logEndDateAndTime
INFO: Utility arrested at 2012-03-20 4:14:14
March 20, 2012 4:14:14 com.ibm.commerce.search.indexsetup.SearchIndexSetupMain logEndDateAndTime
INFO: Total Execution time of 827.581 seconds.
An exception message similar to the following example is in the SystemOut.log file:
[19/03/12 12:08:58:566 CET] 000000ba AppBinaryProc I   ADMA7021I: Distribution of application WC_demo completed successfully.
[19/03/12 12:08:58:582 CET] 000000ba FileRepositor A   ADMR0015I: User defaultWIMFileBasedRealm/configadmin created document cells/WC_demo_cell/applications/WC_demo.ear/deltas/WC_demo/delta-1332155126156.
[19/03/12 12:08:58:582 CET] 000000ba FileRepositor A   ADMR0016I: User defaultWIMFileBasedRealm/configadmin modified document cells/WC_demo_cell/applications/WC_demo.ear/deployments/WC_demo/deployment.xml.
[19/03/12 12:08:58:582 CET] 000000ba FileRepositor A   ADMR0016I: User defaultWIMFileBasedRealm/configadmin modified document cells/WC_demo_cell/applications/WC_demo.ear/deployments/WC_demo/META-INF/ibm-application-runtime.props.
[19/03/12 12:08:58:582 CET] 000000ba FileRepositor A   ADMR0016I: User defaultWIMFileBasedRealm/configadmin modified document cells/WC_demo_cell/applications/WC_demo.ear/WC_demo.ear.
[19/03/12 12:08:58:597 CET] 0000007b serialization W com.ibm.ejs.models.base.bindings.applicationbnd.serialization.ApplicationbndSAXXMLHandler processElement Empty attribute of: "userid". META-INF/ibm-application-bnd.xml: line 7, column 14.
[19/03/12 12:08:58:597 CET] 0000007b serialization W com.ibm.ejs.models.base.bindings.applicationbnd.serialization.ApplicationbndSAXXMLHandler processElement Empty attribute of: "password". META-INF/ibm-application-bnd.xml: line 7, column 14.
[19/03/12 12:09:01:421 CET] 0000007b serialization W com.ibm.ejs.models.base.bindings.applicationbnd.serialization.ApplicationbndSAXXMLHandler processElement Empty attribute of: "userid". META-INF/ibm-application-bnd.xml: line 7, column 14.
[19/03/12 12:09:01:421 CET] 0000007b serialization W com.ibm.ejs.models.base.bindings.applicationbnd.serialization.ApplicationbndSAXXMLHandler processElement Empty attribute of: "password". META-INF/ibm-application-bnd.xml: line 7, column 14.
[20/03/12 04:12:30:131 CET] 000000da AdminHelper   A   ADMN1010I: An attempt is made to stop the WC_demo application. (User ID = defaultWIMFileBasedRealm/server:WC_demo_cell_WC_demo_node_server1)
[20/03/12 04:12:30:162 CET] 000000da CompositionUn A   WSVR0192I: Stopping composition unit WebSphere:cuname=WC_demo in BLA WebSphere:blaname=WC_demo.
[20/03/12 04:12:30:162 CET] 000000da ApplicationMg A   WSVR0217I: Stopping application: WC_demo
[20/03/12 04:12:30:162 CET] 000000da servlet       I com.ibm.ws.webcontainer.servlet.ServletWrapper doDestroy SRVE0253I: [WC_demo] [/wcs/previewresources] [RestPreviewServlet] : La suppression a abouti.
[20/03/12 04:12:31:191 CET] 000000da FfdcProvider  W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on C:\IBM\WebSphere\AppServer\profiles\demo\logs\ffdc\server1_551c551c_12.03.20_04.12.31.1603669158206643705427.txt com.ibm.ws.webcontainer.servlet.ServletWrapper.destroy 403
[20/03/12 04:12:31:191 CET] 000000da servlet       E com.ibm.ws.webcontainer.servlet.ServletWrapper doDestroy SRVE0058E: Exception de non-ex?ution de destroy() ?ise par le servlet Atom Formatting JSP Mapping Servlet dans l'application WC_demo : javax.servlet.ServletException: java.lang.NullPointerException
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.doDestroy(ServletWrapper.java:1445)
	at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.doDestroy(ServletWrapperImpl.java:369)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.destroy(ServletWrapper.java:1545)
	at com.ibm.ws.webcontainer.webapp.WebApp.destroy(WebApp.java:2997)
	at com.ibm.ws.webcontainer.webapp.WebAppImpl.destroy(WebAppImpl.java:805)
	at com.ibm.ws.container.AbstractContainer.destroy(AbstractContainer.java:74)
	at com.ibm.ws.webcontainer.webapp.WebGroup.destroy(WebGroup.java:203)
	at com.ibm.ws.webcontainer.webapp.WebGroup.removeWebApplication(WebGroup.java:241)
	at com.ibm.ws.webcontainer.VirtualHost.removeWebApplication(VirtualHost.java:309)
	at com.ibm.ws.webcontainer.VirtualHostImpl.removeWebApplication(VirtualHostImpl.java:208)
	at com.ibm.ws.webcontainer.WSWebContainer.removeWebApplication(WSWebContainer.java:802)
	at com.ibm.ws.webcontainer.component.WebContainerImpl.uninstall(WebContainerImpl.java:408)
	at com.ibm.ws.webcontainer.component.WebContainerImpl.stop(WebContainerImpl.java:679)
	at com.ibm.ws.runtime.component.ApplicationMgrImpl.stop(ApplicationMgrImpl.java:1145)
	at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStop(DeployedApplicationImpl.java:1320)
	at com.ibm.ws.runtime.component.DeployedModuleImpl.stop(DeployedModuleImpl.java:673)
	at com.ibm.ws.runtime.component.DeployedApplicationImpl.stop(DeployedApplicationImpl.java:1094)
	at com.ibm.ws.runtime.component.ApplicationMgrImpl.stopApplication(ApplicationMgrImpl.java:927)
	at com.ibm.ws.runtime.component.ApplicationMgrImpl.access$100(ApplicationMgrImpl.java:201)
	at com.ibm.ws.runtime.component.ApplicationMgrImpl$2.run(ApplicationMgrImpl.java:1372)
	at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:4599)
	at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:4687)
	at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255)
	at com.ibm.ws.runtime.component.ApplicationMgrImpl.stopApplicationImpl(ApplicationMgrImpl.java:1378)
	at com.ibm.ws.runtime.component.ApplicationMgrImpl.stop(ApplicationMgrImpl.java:2085)
	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.stop(CompositionUnitMgrImpl.java:496)
	at com.ibm.ws.runtime.component.CompositionUnitImpl.stop(CompositionUnitImpl.java:141)
	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.stopCompositionUnit(CompositionUnitMgrImpl.java:777)
	at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.stopCompositionUnit(CompositionUnitMgrImpl.java:721)
	at com.ibm.ws.runtime.component.ApplicationMgrImpl.stopApplication(ApplicationMgrImpl.java:1347)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:600)
	at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:37)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:600)
	at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:244)
	at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1086)
	at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:967)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:848)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:773)
	at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1320)
	at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
	at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1213)
	at com.ibm.ws.management.application.sync.StopDeploymentTask.stopJavaEEObject(StopDeploymentTask.java:403)
	at com.ibm.ws.management.application.sync.StopDeploymentTask.stopApp(StopDeploymentTask.java:338)
	at com.ibm.ws.management.application.sync.StopDeploymentTask.fullAppUpdate(StopDeploymentTask.java:309)
	at com.ibm.ws.management.application.sync.StopDeploymentTask.performTask(StopDeploymentTask.java:132)
	at com.ibm.ws.management.application.sync.AppBinaryProcessor$ExpandApp.expand(AppBinaryProcessor.java:1556)
	at com.ibm.ws.management.application.sync.AppBinaryProcessor.postProcessSynchronousExt(AppBinaryProcessor.java:654)
	at com.ibm.ws.management.bla.sync.BLABinaryProcessor.postProcess(BLABinaryProcessor.java:569)
	at com.ibm.ws.management.bla.sync.BLABinaryProcessor.onChangeCompletion(BLABinaryProcessor.java:451)
	at com.ibm.ws.management.repository.FileRepository.postNotify(FileRepository.java:1915)
	at com.ibm.ws.management.repository.FileRepository.update(FileRepository.java:1424)
	at com.ibm.ws.management.repository.client.LocalConfigRepositoryClient.update(LocalConfigRepositoryClient.java:189)
	at com.ibm.ws.sm.workspace.impl.WorkSpaceMasterRepositoryAdapter.update(WorkSpaceMasterRepositoryAdapter.java:655)
	at com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.update(RepositoryContextImpl.java:1954)
	at com.ibm.ws.sm.workspace.impl.RepositoryContextImpl.synch(RepositoryContextImpl.java:1902)
	at com.ibm.ws.sm.workspace.impl.WorkSpaceImpl.synch(WorkSpaceImpl.java:511)
	at com.ibm.ws.management.configservice.ConfigServiceImpl.save(ConfigServiceImpl.java:703)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:600)
	at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:37)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:600)
	at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:244)
	at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1086)
	at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:967)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:848)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:773)
	at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1320)
	at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
	at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:1213)
	at com.ibm.ws.management.connector.AdminServiceDelegator.invoke(AdminServiceDelegator.java:181)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:600)
	at com.ibm.ws.management.connector.soap.SOAPConnector.invoke(SOAPConnector.java:406)
	at com.ibm.ws.management.connector.soap.SOAPConnector.service(SOAPConnector.java:239)
	at com.ibm.ws.management.connector.soap.SOAPConnection.handleRequest(SOAPConnection.java:65)
	at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:733)
	at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:522)
	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550)
Caused by: java.lang.NullPointerException
	at com.ibm.commerce.struts.ECActionServlet.destroy(ECActionServlet.java:635)
	at com.ibm.ws.cache.servlet.ServletWrapper.destroy(ServletWrapper.java:216)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.doDestroy(ServletWrapper.java:1433)
	... 90 more

[20/03/12 04:12:31:254 CET] 000000da webapp        I com.ibm.ws.webcontainer.webapp.WebApp log SRVE0296E: [WC_demo#Rest.war][/wcs/resources][Servlet.LOG]: .Error occurred while destroying servlet : .javax.servlet.ServletException: java.lang.NullPointerException
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.doDestroy(ServletWrapper.java:1445)

Solution

To solve this problem:
  1. Confirm that you have templates for all of the languages you support.
    WebSphere Commerce provides templates for the following locales and languages:
    Translated languages
    Language & Country or Region Identifier
    English (United States) en_US
    French (France) fr_FR
    German (Germany) de_DE
    Italian (Italy) it_IT
    Spanish (Spain) es_ES
    Portuguese (Brazil) pt_BR
    Chinese-simplified (China) zh_CN
    Chinese-traditional (Taiwan) zh_TW
    Korean (Korea, South) ko_KR
    Japanese (Japan) ja_JP
    Russian (Russia) ru_RU
    Romanian (Romania) ro_RO
    Polish (Poland) pl_PL
    If additional languages are added and supported for your WebSphere Commerce instance, for example, Arabic (ar_EG), you must create the locale-specific assets for them.
  2. If you support a language that is not listed in the table of locales and languages, follow the steps in Indexing a new language in WebSphere Commerce search.