[ https://issues.apache.org/jira/browse/WW-3689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13810003#comment-13810003
]
Sunil D commented on WW-3689:
-----------------------------
Upgrading to 2.3.16-SNAPSHOT breaks our code as we use dynamic method invocation a lot, but
that was [changed|http://www.brucephillips.name/blog/index.cfm/2011/2/19/Struts-2-Security-Vulnerability--Dynamic-Method-Invocation]
(because of the security issues) in the earlier 2.3.15.2 release. Let me look into the feasibility
of refactoring our code to not use DMI, I guess we will have to do it at some point.
> NullPointerException coming from Settings / LegacyPropertiesConfigurationProvider (thread-safety
issue?)
> --------------------------------------------------------------------------------------------------------
>
> Key: WW-3689
> URL: https://issues.apache.org/jira/browse/WW-3689
> Project: Struts 2
> Issue Type: Bug
> Affects Versions: 2.0.14, 2.2.3.1
> Environment: Any; multi-core machines tend to demonstrate the problem more readily
though.
> Reporter: James Abley
> Assignee: Lukasz Lenart
> Fix For: 2.3.15
>
> Attachments: WW-3689-locked-initialisation.patch
>
>
> When running a load test, we intermittently see failures with this stack trace (the line
numbers are for 2.0.14, but we also see this with 2.2.3.1):
> {noformat}
> Exception in thread "MultiThreadTestRunner-5" java.lang.NullPointerException
> at org.apache.struts2.config.Settings.get(Settings.java:175)
> at org.apache.struts2.config.Settings.getDefaultInstance(Settings.java:293)
> at org.apache.struts2.config.Settings.getInstance(Settings.java:109)
> at org.apache.struts2.config.LegacyPropertiesConfigurationProvider.register(LegacyPropertiesConfigurationProvider.java:67)
> at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:131)
> at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
> at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
> at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
> at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:205)
> at com.example.platform.test.servlet.OurServlet.handleRequest(OurServlet.java:64)
> {noformat}
> or
> {noformat}
> Caused by: java.lang.NullPointerException
> at org.apache.struts2.config.LegacyPropertiesConfigurationProvider.loadSettings(LegacyPropertiesConfigurationProvider.java:86)
> at org.apache.struts2.config.LegacyPropertiesConfigurationProvider.register(LegacyPropertiesConfigurationProvider.java:69)
> at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:131)
> at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
> at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
> at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
> at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:205)
> {noformat}
> Our suspicion is that the initialisation isn't thread-safe; we've not seen this failure
on older, single-processor / single-core machines.
--
This message was sent by Atlassian JIRA
(v6.1#6144)
|