[MAGNOLIA-5671] Creation of new RegexpVirtualURIMapping can lead to error 500 Created: 12/Feb/14  Updated: 15/Mar/21  Resolved: 15/Mar/21

Status: Closed
Project: Magnolia
Component/s: None
Affects Version/s: 4.5.16, 5.2
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Jaroslav Simak Assignee: Unassigned
Resolution: Obsolete Votes: 1
Labels: quickwin
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled

 Description   

To reproduce:

  • open configuration
  • go to adminInterface/ui-admincentral
  • add new node under virtualURLMapping
  • create 3 properties under new node
  • rename first property to "class", fill in info.magnolia.cms.beans.config.RegexpVirtualURIMapping value
  • rename second property to "fromURI"
  • you should see error 500
root cause

java.lang.NullPointerException
	java.util.regex.Matcher.appendReplacement(Matcher.java:758)
	java.util.regex.Matcher.replaceAll(Matcher.java:906)
	info.magnolia.cms.beans.config.RegexpVirtualURIMapping.mapURI(RegexpVirtualURIMapping.java:78)
	info.magnolia.cms.beans.config.RegexpVirtualURIMapping.mapURI(RegexpVirtualURIMapping.java:61)
	info.magnolia.cms.beans.config.VirtualURIManager.getURIMapping(VirtualURIManager.java:112)
	info.magnolia.cms.filters.VirtualUriFilter.getURIMapping(VirtualUriFilter.java:102)
	info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:67)
	info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
	info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
	info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58)
	info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:66)
	info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:153)
	info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:61)
	info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
	info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:76)
	info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)
	info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:83)
	info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:86)
	info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:91)

Reason for this error is that we are passing null to the replaceAll method:

String replaced = matcher.replaceAll(toURI);

IMHO this is something we could avoid.


Generated at Mon Feb 12 04:07:19 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.