AnsweredAssumed Answered

Defects in CustomWebPublishingConfigAdapter can cause WPE to stop working with error code 2504 or...

Question asked by MikeyH on Apr 27, 2011
Latest reply on Jun 9, 2011 by chuy

Summary

Defects in CustomWebPublishingConfigAdapter can cause WPE to stop working with error code 2504 or fail to start

Product

FileMaker Server

Version

11.0.3.309

Operating system version

MacOS 10.6.7

Description of the issue

In certain WPE configurations where XSLT Publishing or logging are changed the web publishing engine will fail to start or stop working with the following exception...

[FMICustomWebPublishingConfigAdapter] - Allocate exception for servlet FMICustomWebPublishingConfigAdapter
java.lang.NullPointerException
     at com.fmi.config.CustomWebPublishingConfigAdapter.init(Unknown Source)
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
     at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:791)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:127)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
     at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:276)
     at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:81)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
     at com.filemaker.tomcat.FMErrorReportValve.invoke(Unknown Source)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
     at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
     at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
     at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
     at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
     at java.lang.Thread.run(Thread.java:680)


This issue is related to the loading of xslt_cwp_log.properties in FMICustomWebPublishingConfigAdapter.init(ServletConfig) found in cwpe-config.jar

In certain configurations the xslt_cwp_log.properties file has no entries for log4j.category.xslt_cwp.user and log4j.category.xslt_cwp

The getProperty("log4j.category.xslt_cwp.user"); and getProperty("log4j.category.xslt_cwp"); will return null and the code property.substring(0, property.indexOf(',')) will cause a NullPointerException.

Manual fixes to this class resolve this issue.

Steps to reproduce the problem

Some combination of WPE deployment with XSTL Publishing disabled and/or changes to the WPE Configuration result in an empty xslt_cwp_log.properties file.

Expected result

WPE works :-)

Actual result

WPE fails with java.lang.NullPointerException in FMICustomWebPublishingConfigAdapter

Exact text of any error message(s) that appear

[FMICustomWebPublishingConfigAdapter] - Allocate exception for servlet FMICustomWebPublishingConfigAdapter
java.lang.NullPointerException
     at com.fmi.config.CustomWebPublishingConfigAdapter.init(Unknown Source)
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
     at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:791)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:127)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
     at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:276)
     at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:81)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
     at com.filemaker.tomcat.FMErrorReportValve.invoke(Unknown Source)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
     at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
     at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
     at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
     at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
     at java.lang.Thread.run(Thread.java:680)

Workaround

Reinstall :-(

Filemaker_WPE_2504_Error.jpg

Outcomes